默认情况下,我们将.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应该有什么变化
答案 0 :(得分:2)
我有一些可能对您有用的东西。
首先,我创建了 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
部分中的includes
范围。
然后,在命令提示符下,运行以下命令:
ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json
我通过复制其他一些spec文件创建了几个 spec1.ts 文件,并将其重命名。上面的命令仅在这些文件中运行测试。似乎可以工作。
试一试。真的没有太多的工作。
您可以将以下内容添加到 package.json 的scripts
部分:
"test1": "ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json",
然后运行npm run test1
以仅运行 spec1 测试。
我试图在没有--include=./**/*.spec1.ts
的情况下运行上面的命令,因为它在我创建的新 tsconfig 文件中,但并不喜欢。
我还尝试创建 test.ts 的副本,并将files
更改为包含test1.ts
,然后运行ng t --tsConfig=./src/tsconfig.spec1.json
,不行。 / p>