Ous*_*OUD 10 unit-testing karma-jasmine angular
我有一个带有 Karma 设置的 Angular 项目,用于单元测试。测试和覆盖率适用于所有规范文件,但应用程序每天都在变大,即使我专注于一个新模块,我也很难运行所有测试,所以我只想运行一些我想要的测试想检查,例如,我有一个管道文件夹,我想做的就是只运行该文件夹中的规范文件,我知道我可以更新 test.ts 文件中的上下文,但我不想更新并每次都还原该文件...
我尝试创建一个新的 Karma 配置文件并更新该files属性以仅添加我想要的文件,但它不起作用。我不知道也许我做错了。(请参阅下面此文件中的部分代码)
有什么解决方案或技巧可以做到这一点吗?类似于karma.config.pipes.ts改变上下文的单独 karma 配置(例如:)文件?
// Override dev config
config.set({
files: [
{pattern: '../app/pipes/*.spec.ts'}
]
});
Run Code Online (Sandbox Code Playgroud)
Swo*_*oox 12
不确定它是否相关,但从 8.1 开始,您可以使用该--include选项,例如:
"ng test --include=**/folder/*.spec.ts"
来源: https: //angular.io/cli/test#options和https://blog.ninja-squad.com/2019/07/03/angular-cli-8.1/
另请确保更新您的:@angular-devkit/build-angular。
小智 1
你可以有 test.ts 文件,其中包含以下代码
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.
// here u can specify the folder
const context = require.context("./pipes", true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
Run Code Online (Sandbox Code Playgroud)
并在 tsconfig.spec.ts 中配置此文件
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts",
"./polyfills.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3373 次 |
| 最近记录: |