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

时间:2019-05-15 12:21:28

标签: angular angular-cli karma-runner

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

app.module.ts

Router

我可以使用export class AppModule {}

进行测试

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

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

ng test MyApp

这些已导入AppModule中。

我该如何做类似export class MyOneModule {} export class MyOtherModule {} / ng test MyOneModule的事情,我想用它仅运行该“子模块”中所有组件的测试该应用程序中的所有测试?

我无法在official docu或StackOverflow的此处找到信息。可能吗?

2 个答案:

答案 0 :(得分:1)

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

test.ts中,我更改路径:

const context: any = require.context('./', true, /\.spec\.ts$/);

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

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

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

不太理想,因为我不想对签入文件进行更改,这些更改不是要提交的,但确实可以完成。

答案 1 :(得分:0)

您可以在线找到一些资源such as this one,该资源说明了如何grep文件仅运行它们。

我还记得一个同事从intelliJ为单个文件运行他的测试,并且有一个命令行参数,但我根本不记得它。

最后,您还可以在测试中使用fdescribe/xdescribefit/xit仅运行那些测试。