我有我的角度应用,如下声明:
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/xdescribe
和fit/xit
来运行这些。