如何执行Angular App子模量所有组件的NG测试



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

app.module.ts

export class AppModule {}

我可以使用ng test MyApp

进行测试

在此应用中,我有多个模块,如下所示:

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

export class MyOneModule {}
export class MyOtherModule {}

这些是在AppModule中导入的。

我该如何执行诸如ng test MyOneModule/ng test MyOtherModule之类的事情,我想使用在该非常" sub Module" 中的所有组件的测试,而不是应用程序中的所有测试?/p>

我找不到官方文档或Stackoverflow中的信息。是否可以?

我最终使用了此解决方法:

test.ts i改变路径:

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

to

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仅在定义的目录(及其子目录(中执行测试。

不是理想的,因为我不喜欢更改签入文件,但这并不是要犯下的,但它可以完成工作。

您可以单独测试每个模块,而无需任何代码更改。

dublate test.ts和tsconfig.spec.json文件用于模块,然后重命名以下;

test.moduleone.ts

tsconfig.moduleone.spec.json

在tsconfig.moduleone.spec.json

中查找并更改test.ts test.moduleone.ts
"files": [
   "test.moduleone.ts"
]

在test.moduleone.ts;

中找到并更改路径为模块路径
const context: any = require.context('./app/moduleone', true, /.spec.ts$/);

这样的模块运行测试;

ng test --main src/test.moduleone.ts --ts-config src/tsconfig.moduleone.spec.json

您可以将每个模块的脚本添加到package.json

中的脚本部分
"scripts":{
   "moduleone_tests":"ng test --main src/test.moduleone.ts --ts-config src/tsconfig.moduleone.spec.json"
}

因此,您可以使用一个简单命令(例如

(测试每个模块
npm run moduleone_tests

您可以在线找到一些资源,例如该资源,这些资源说明了如何仅运行它们。

我还记得一个同事从Intellij进行单个文件进行测试,并且有一个命令行参数,但我根本不记得了。

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

最新更新