网页包,Angular 4,Jasmine,ES2015-平台浏览器动态测试不是一项功能
我正在评估Angular 4(我们目前使用Angular 1.5),并已获得网页包和Angular 4设置,并使用ES2015notTypeScript工作。我的构建工作正常,我可以在浏览器中查看输出,没有任何问题 我现在尝试用基本单元测试添加Karma和Jasmine,但在尝试运行测试时,我看到以下错误: 未捕获的TypeError:\u platformBrowserDynamic.platformBrowserDynamic.platformBrowserDynamicTesting不是函数 错误源于test-main.js文件(见下文),而不是.spec.js文件 我一直在用其中一个来设置一切,但有些地方不太对劲。这本指南是针对TypeScript的,我想使用ES2015,但我看不出我在指南中遗漏了什么 当我运行测试时,我得到Webpack正在编译的输出,并且它编译成功,我看到Karma启动的输出,Chrome headless浏览器启动,但是我看到上面的错误 我试着对导致错误的行进行注释,但在本例中,错误变为 TypeError:无法读取null的属性“injector” 以下是相关文件: karma.conf.js: test-main.js: app.welcome.spec.js:网页包,Angular 4,Jasmine,ES2015-平台浏览器动态测试不是一项功能,angular,webpack,jasmine,Angular,Webpack,Jasmine,我正在评估Angular 4(我们目前使用Angular 1.5),并已获得网页包和Angular 4设置,并使用ES2015notTypeScript工作。我的构建工作正常,我可以在浏览器中查看输出,没有任何问题 我现在尝试用基本单元测试添加Karma和Jasmine,但在尝试运行测试时,我看到以下错误: 未捕获的TypeError:\u platformBrowserDynamic.platformBrowserDynamic.platformBrowserDynamicTesting不是函
它实际上不是一个函数,因为导入是错误的。测试的东西并没有和生产的东西放在同一堆中。它是
@angular/platform browser dynamic/testing
,而不是@angular/platform browser dynamic
实际代码如下所示
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
...
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
...
请参见如何操作的工作示例。谢谢,我尝试在test-main.js文件中更改它(我没有使用TypeScript),但错误已更改为
未捕获的TypeError:(0,_platformBrowserDynamic.platformBrowserDynamicTesting)不是一个函数
?看起来您并没有应用所有建议的更改。考虑到它说的是\u platformbrowser dynamic
,看起来您仍在尝试从@angular/platform browser dynamic
<导入它。您是正确的-我忘了将/testing
添加到@angular/platform browser dynamic
的末尾。很好,谢谢。它正在工作
import 'core-js/es6';
import 'core-js/es7/reflect';
import 'reflect-metadata';
import 'zone.js';
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/proxy';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import {TestBed} from '@angular/core/testing';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
let appContext = require.context('./js', true, /\.spec\.js/);
appContext.keys().forEach(appContext);
TestBed.initTestEnvironment(platformBrowserDynamic.BrowserDynamicTestingModule, platformBrowserDynamic.platformBrowserDynamicTesting());
import {TestBed} from '@angular/core/testing';
import {WelcomeComponent} from '../../js/app.welcome';
describe('The Welcome component', function () {
let component;
beforeEach(function() {
TestBed.configureTestingModule({
declarations: [WelcomeComponent]
});
let fixture = TestBed.createComponent(WelcomeComponent);
component = fixture.componentInstance;
});
it('should be a component', function() {
expect(component).toBeDefined();
});
});
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
...
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
...