角度测试 - 未找到test.ts.

时间:2018-05-16 22:38:28

标签: javascript angular unit-testing testing jasmine

我试图按照官方Angular文档为Angular项目设置测试 - https://angular.io/guide/testing#service-tests

我已经使用第一个(顶部)链接从上面的页面下载了示例Angular项目。我已经完成了npm install,当我运行ng serve时,它就构建得很好。

当我使用CLI运行ng test时,收到消息:

ERROR in Entry module not found: Error: Cant' resolve 'C:Code\testing\src\test.ts' in 'C:\Code\testing'

ERROR in error TS6053: File 'C:Code\testing\src\test.ts' not found.

我查看了这个问题 - How to resolve test.ts when running ng test?,但在这种情况下文件确实存在,但在Angular示例项目中它根本不存在。

(当我第一次跑ng test时,我最初得到一条关于Jasmine Marbles失踪的消息,我决定使用:)

npm install jasmine-marbles --save

文档说:

  

你可以通过编辑karma.conf.js来调整很多选项   src /文件夹中的test.ts文件。

所以我知道test.cs是某种配置文件,但是我该如何生成呢?它并不存在于Angular的实时示例中。项目要么。我怎么知道我生成的test.cs能够可靠地使用这个项目?

2 个答案:

答案 0 :(得分:1)

我不知道你是否可以只生成test.ts文件,但据我所知,当你使用angular-cli创建一个新的角度项目时会自动生成这个文件。所以你可以使用angular-cli创建一个新项目,然后从该新项目中复制src / test.ts文件

答案 1 :(得分:0)

我使用了@joshbaeha对ng new新Angular 5项目的建议,并复制了test.ts文件,该文件似乎完全通用,不依赖于项目结构或其他任何内容。现在一切都在运转。这是:

test.ts

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

declare const require: any;

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);