我有一个带有Karma设置的Angular项目,用于单元测试。该测试和覆盖范围适用于所有规格文件,但该应用每天都在变大,即使我专注于一个新模块,它也困扰着我运行所有测试,因此我只想运行一些我所需要的测试例如,要检查一个管道文件夹,而我只想运行此文件夹中的spec文件,我知道我可以在test.ts文件中更新上下文,但是我不知道希望每次都更新并还原该文件...
我试图创建一个新的Karma配置文件,并更新了files
属性,仅添加了我想要的文件,但是没有用。我不知道我可能做错了。 (请参见下面文件中的部分代码)
有解决方案或技巧吗?类似于更改上下文的单独的业力配置(例如:karma.config.pipes.ts
)文件?
// Override dev config
config.set({
files: [
{pattern: '../app/pipes/*.spec.ts'}
]
});
答案 0 :(得分:1)
不确定是否已经有用,但是从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 :(得分:0)
u可以具有包含以下代码的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);
并在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"
]
}