मैं ngUpgrade
का उपयोग करने के लिए ng1 से ng2 तक जाने की कोशिश कर रहा हूं, और अपग्रेड के दौरान मेरे कर्म/जैस्मीन परीक्षणों को भी पास करता हूं , लेकिन मैं एक त्रुटि में भाग रहा हूं जिसे मैं समझ नहीं सकता।ngUpgrade के साथ एक कोणीय ऐप का परीक्षण करना "अज्ञात प्रदाता: ng2.InjectorProvider <- ng2.Injector"
मैंने एक सेवा (Data
) को एक ng2 @Injectable
होने के लिए अपग्रेड किया है, और upgradeAdapter.downgradeNg2Provider
का उपयोग अपने एनजी 1 ऐप में इंजेक्ट करने के लिए किया है। यह उत्पादन कोड में ठीक काम करता है।
Error: [$injector:unpr] Unknown provider: ng2.InjectorProvider <- ng2.Injector <- Data
किसी इकाई ngUpgrade के बीच में अपने कोड का परीक्षण की एक काम उदाहरण है:
लेकिन जब मैं अपने परीक्षण में यह इंजेक्षन $ करने की कोशिश, मैं इस त्रुटि मिलती है? मेरा ढेर वेबपैक-आधारित है। मैंने systemjs guide का पालन करने और बदलने की कोशिश की लेकिन कोई भाग्य नहीं था।
karma.conf.js:
module.exports = function (config) {
config.set({
// base path used to resolve all patterns
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files/patterns to load in the browser
files: [{ pattern: 'spec.bundle.js', watched: false }],
// files to exclude
exclude: [],
plugins: [
require('karma-phantomjs-launcher'),
require('karma-jasmine'),
require('karma-webpack')
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: { 'spec.bundle.js': ['webpack'] },
webpack: require('./webpack.config'),
webpackServer: {
noInfo: true // prevent console spamming when running in Karma!
},
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// enable colors in the output
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// toggle whether to watch files and rerun tests upon incurring changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['PhantomJS'],
// if true, Karma runs tests once and exits
singleRun: false
});
};
spec.bundle.js
import 'angular';
import 'angular-mocks';
import 'es6-shim';
import 'reflect-metadata';
import 'angular2/src/core/di';
import test from 'angular2/testing';
import browser from 'angular2/platform/testing/browser';
test.setBaseTestProviders(browser.TEST_BROWSER_PLATFORM_PROVIDERS,
browser.TEST_BROWSER_APPLICATION_PROVIDERS);
let context = require.context('./src', true, /\.spec\.js/);
context.keys().forEach(context);