Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 因果报应+;茉莉花&x2B;角度2+;Webpack:coreTesting.setBaseTestProviders不是函数_Javascript_Angular_Webpack_Karma Jasmine - Fatal编程技术网

Javascript 因果报应+;茉莉花&x2B;角度2+;Webpack:coreTesting.setBaseTestProviders不是函数

Javascript 因果报应+;茉莉花&x2B;角度2+;Webpack:coreTesting.setBaseTestProviders不是函数,javascript,angular,webpack,karma-jasmine,Javascript,Angular,Webpack,Karma Jasmine,试图通过文章建立一些测试系统。这或多或少是可以理解的,但我有一个错误,我目前无法解决 我的karma.entry.js: require('es6-shim'); require('reflect-metadata'); require('zone.js/dist/zone'); require('zone.js/dist/long-stack-trace-zone'); require('zone.js/dist/jasmine-patch'); require('zone.js/dist/a

试图通过文章建立一些测试系统。这或多或少是可以理解的,但我有一个错误,我目前无法解决

我的
karma.entry.js

require('es6-shim');
require('reflect-metadata');
require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/jasmine-patch');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');
require('zone.js/dist/sync-test');


const browserTesting = require('@angular/platform-browser-dynamic/testing');
const coreTesting = require('@angular/core/testing');


coreTesting.setBaseTestProviders(
   browserTesting.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
   browserTesting.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS
);

const context = require.context('..\\srs\\', true, /\.spec\.ts$/);
context.keys().forEach(context);
Error.stackTraceLimit = Infinity;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 2000;
'use strict';

module.exports = (config) => {
config.set({
    autoWatch: true,
    browsers: ['Chrome'],
    files: [
        '../node_modules/es6-shim/es6-shim.min.js',
        'karma.entry.js'
    ],
    frameworks: ['jasmine'],
    logLevel: config.LOG_INFO,
    phantomJsLauncher: {
        exitOnResourceError: true
    },
    preprocessors: {
        'karma.entry.js': ['webpack', 'sourcemap']
    },
    reporters: ['dots'],
    singleRun: false,
    webpack: require('..\\webpack\\webpack.test'),
    webpackServer: {
        noInfo: true
    }
});
};
运行“npm测试”会导致错误:

Uncaught TypeError: coreTesting.setBaseTestProviders is not a function
at webpack:///karma/karma.entry.js:15:0 <- karma.entry.js:61
我的
package.json
似乎具有所有必要的依赖性:

{
 ...
  "dependencies": {
    "@angular/common": "^2.2.4",
    "@angular/compiler": "^2.2.4",
    "@angular/core": "^2.2.4",
    "@angular/forms": "^2.2.4",
    "@angular/http": "^2.2.4",
    "@angular/platform-browser": "^2.2.4",
    "@angular/platform-browser-dynamic": "^2.2.4",
    "@angular/router": "^3.2.4",
    "es6-shim": "^0.35.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "^5.0.0-beta.12",
    "zone.js": "^0.6.12"
   },
  "devDependencies": {
    "@types/core-js": "^0.9.35",
    "html-webpack-plugin": "^2.24.1",
    "jasmine-core": "^2.5.2",
     "karma": "^1.3.0",
   "karma-chrome-launcher": "^2.0.0",
    "karma-jasmine": "^1.0.2",
    "karma-phantomjs-launcher": "^1.0.2",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "^1.8.0",
    "phantomjs-prebuilt": "^2.1.13",
    "raw-loader": "^0.5.1",
    "ts-loader": "^1.2.2",
    "tslint": "^4.0.2",
    "tslint-loader": "^3.2.1",
    "typescript": "^2.0.10",
     "typings": "^2.0.0",
    "webpack": "^1.13.3",
    "webpack-dev-server": "^1.16.2"
  }
}

有人能告诉我,我到底在哪里对整个事情进行了错误配置吗?

测试API多次更改。存储库中提供了测试条目文件的当前版本

基本上,您现在应该做的是使用
core/testing
模块中公开的TestBed类,而不是直接调用现在删除的
setBaseTestProviders
方法

...
coreTesting.TestBed.resetTestEnvironment();
coreTesting.TestBed.initTestEnvironment(
    browserTesting.BrowserDynamicTestingModule,
    browserTesting.platformBrowserDynamicTesting()
);

TestBed是一个处理测试环境需求的类。您可以在中了解更多信息。

事实上,我使用了一种不推荐的方法。

您看过Changelog 2.0.0-rc.5(2016-08-09)吗<代码>setBaseTestProviders已弃用,仅支持Angular预定义的平台提供程序。改用“TestBed.initTestEnvironment”。yep。thnx。刚找到