Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
网页包,Angular 4,Jasmine,ES2015-平台浏览器动态测试不是一项功能_Angular_Webpack_Jasmine - Fatal编程技术网

网页包,Angular 4,Jasmine,ES2015-平台浏览器动态测试不是一项功能

网页包,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 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/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()
);
...