我试图按照官方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能够可靠地使用这个项目?
答案 0 :(得分:1)
我不知道你是否可以只生成test.ts文件,但据我所知,当你使用angular-cli创建一个新的角度项目时会自动生成这个文件。所以你可以使用angular-cli创建一个新项目,然后从该新项目中复制src / test.ts文件
答案 1 :(得分:0)
我使用了@joshbaeha对ng new
新Angular 5项目的建议,并复制了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);