我在TypeScript中使用Angular 2。我使用Angular CLI工具创建了这个项目,并尝试使用命令 - “karma start”运行里面的测试用例 - “app.component.spec.ts”。此测试用例由Angular CLI本身生成,并且没有变化。 当我运行测试用例时,它会给我以下错误 -
C:\Projects\Angular2\TestProject>karma start
21 08 2016 16:18:34.167:WARN [karma]: No captured browser, open http://localhost:9876/
21 08 2016 16:18:34.178:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
21 08 2016 16:18:34.205:INFO [launcher]: Starting browser Chrome
21 08 2016 16:18:36.677:INFO [Chrome 52.0.2743 (Windows 7 0.0.0)]: Connected on socket /#u3qiejjLaOGa5HdGAAAA with id 54026183
Chrome 52.0.2743 (Windows 7 0.0.0) ERROR
Uncaught SyntaxError: Unexpected token import
at C:/Projects/Angular2/TestProject/src/app/app.component.spec.ts:5
有人可以帮助您解决此问题。
app.component.spec.ts -
/* tslint:disable:no-unused-variable */
/// <reference path="../../typings/globals/jasmine/index.d.ts" />
import { addProviders, async, inject } from '@angular/core/testing';
import { AppComponent } from './app.component';
describe('App: TestProject', () => {
beforeEach(() => {
addProviders([AppComponent]);
});
it('should create the app',
inject([AppComponent], (app: AppComponent) => {
expect(app).toBeTruthy();
}));
it('should have as title \'app works!\'',
inject([AppComponent], (app: AppComponent) => {
expect(app.title).toEqual('Test Project Title');
}));
});
答案 0 :(得分:2)
我有同样的错误。我的问题是我的.ts
目录中的所有spec
文件都没有被angular-cli正确检测到。我在karma.conf.js
中遇到了一些配置问题。我更改了以下内容:
files: [
{ pattern: './web/spec/test.ts', watched: false }
],
preprocessors: {
'./invalid-path/to/test.ts': ['angular-cli']
},
到
files: [
{ pattern: './web/spec/test.ts', watched: false }
],
preprocessors: {
'./web/spec/test.ts': ['angular-cli']
},
之后导入被正确解释,.ts
文件可以使用ng test
再次编译而不会出错。
答案 1 :(得分:-2)
要在Karma中运行typescript测试,您需要一个像karma-typescript-preprocessor
这样的预处理器或者您可以使用已编译的'js'测试文件运行测试