角度单元测试-按模块或文件夹运行

时间:2019-02-07 13:20:11

标签: angular unit-testing karma-jasmine

我有一个带有Karma设置的Angular项目,用于单元测试。该测试和覆盖范围适用于所有规格文件,但该应用每天都在变大,即使我专注于一个新模块,它也困扰着我运行所有测试,因此我只想运行一些我所需要的测试例如,要检查一个管道文件夹,而我只想运行此文件夹中的spec文件,我知道我可以在test.ts文件中更新上下文,但是我不知道希望每次都更新并还原该文件...

我试图创建一个新的Karma配置文件,并更新了files属性,仅添加了我想要的文件,但是没有用。我不知道我可能做错了。 (请参见下面文件中的部分代码

有解决方案或技巧吗?类似于更改上下文的单独的业力配置(例如:karma.config.pipes.ts)文件?

// Override dev config
config.set({
  files: [
    {pattern: '../app/pipes/*.spec.ts'}
  ]
});

2 个答案:

答案 0 :(得分:1)

不确定是否已经有用,但是从8.1开始,您可以使用--include选项,例如:

"ng test --include=**/folder/*.spec.ts"

来源:https://angular.io/cli/test#optionshttps://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"
]
}