如何对 Angular 应用程序子模块的所有组件执行 ng 测试

jas*_*sie 1 karma-runner angular-cli angular

我有我的角度应用程序,声明如下:

应用程序模块.ts

export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

我可以用它来运行测试ng test MyApp

在这个应用程序中,我有多个模块,声明如下:

my-one.module.ts / my-other.module.ts

export class MyOneModule {}

export class MyOtherModule {}
Run Code Online (Sandbox Code Playgroud)

这些是在 AppModule 中导入的。

我怎样才能做类似ng test MyOneModule/的事情ng test MyOtherModule,我想用它只运行该“子模块”中所有组件的测试,而不是应用程序中的所有测试?

我在官方文档或 StackOverflow 中找不到信息。有可能吗?

jas*_*sie 5

我最终使用了这个解决方法:

test.ts我改变路径:

const context: any = require.context('./', true, /\.spec\.ts$/);
Run Code Online (Sandbox Code Playgroud)

const context: any = require.context('./app/modules/my-one-module', true, /\.spec\.ts$/);
Run Code Online (Sandbox Code Playgroud)

或者

const context: any = require.context('./app/modules/my-other-module', true, /\.spec\.ts$/);
Run Code Online (Sandbox Code Playgroud)

这会导致ng test仅在定义的目录(及其子目录)中执行测试。

不理想,因为我不喜欢对签入的文件进行更改,这些更改并不意味着要提交,但它可以完成工作。