angular - 如何在 Angular 7 中运行不同的测试配置
问题描述
默认情况下,我们有 .spec.ts 作为我们的测试文件。
我们有相同的配置。
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"karmaConfig": "src/karma.conf.js",
"styles": [
"src/styles.scss"
],
"scripts": ["node_modules/hammerjs/hammer.min.js"],
"assets": [
"src/favicon.ico",
"src/assets"
],
"codeCoverage": true
}
}
但是,如果我有两组测试文件,比如说spec.ts 和 spec1.ts。
我可以运行一个命令 ng test 来运行所有 .spec 文件并运行另一个命令来运行所有 *.spec1 文件。
我应该在 angular.json 中进行哪些更改
解决方案
我得到了一些可能对你有用的东西。
首先,我创建了tsconfig.spec.json文件的副本,并将其命名为tsconfig.spec1.json,我想您可以随意命名。这是文件的内容:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec1.ts",
"**/*.d.ts"
]
}
请注意文件部分中的**/*.spec1.ts
glob 。includes
然后,在命令提示符下,我运行了以下命令:
ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json
我通过复制我拥有的其他一些规范文件创建了几个spec1.ts文件,并将它们重命名。上面的命令只运行这些文件中的测试。似乎工作。
试一试。真的没有太多的工作。
您可以将以下内容添加到package.jsonscripts
的部分:
"test1": "ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json",
然后运行npm run test1
以仅运行spec1测试。
我试图在没有的情况下运行上面的命令,--include=./**/*.spec1.ts
因为它在我创建的新tsconfig文件中,但它不喜欢那样。
我还尝试创建test.ts的副本,并将其更改files
为 include test1.ts
,然后运行ng t --tsConfig=./src/tsconfig.spec1.json
,不行。
推荐阅读
- python - timeit.timeit 以科学计数法返回时间?
- python-3.x - AsyncElasticsearch 客户端不接受与 AWS Elasticsearch 的连接 - AttributeError: 'AWS4Auth' object has no attribute 'encode'
- javafx - JavaFX 属性:fireValueChangedEvent
- reactjs - React Redux 句柄事件成功完成
- logging - Windows 10 IoT UWF 不保留事件查看器日志
- javascript - 根据vue js中的用户角色权限将用户重定向到特定仪表板
- .net-core - MassTransit SignalR 绑定
- google-cloud-platform - 如何通过 MQL 获取 GCP 计算虚拟机实例的正常运行时间总数和百分比?
- qt - QML:列表代表之间的分隔符
- python - 在 swig 生成的 python 接口中使用 std::vector 成员变量作为列表