我有一个带有一些测试的 Angular 应用程序,其中还包含一个带有自己测试的库,例如
app/projects/my-lib
。我遇到的问题是库中的测试没有被执行。另外,我尝试从库中执行特定测试,我得到:
ng test --include projects/my-lib/myfile.spec.ts
Executed 0 of 0 SUCCESS (0.003 secs / 0 secs)
TOTAL: 0 SUCCESS
这就是我的
angular.json
:
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"polyfills": ["zone.js", "zone.js/testing"],
"tsConfig": "tsconfig.spec.json",
"preserveSymlinks": true
}
},
这是 tsconfig.spec.json:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jasmine",
"node"
]
},
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
来自
src/
的测试工作正常,但来自 projects/
的测试被忽略。
我搜索了不同的解决方案,但都提到了 Angular 17 中不再存在的一些文件,例如 test.ts
和 karma.conf.js
。
请告知可能有什么问题。谢谢!
在常规 Angular 工作区中,您通常有一个
projects
文件夹,其中包含多个应用程序和/或库 (https://angular.io/guide/creating-libraries)。 angular.json
包含您工作区中所有项目的配置。
如果您有一个
my-lib
项目,那么您应该有类似的内容:
...
"projects": {
"my-lib": {
...
"sourceRoot": "projects/my-lib",
...并且您应该能够使用
my-lib
运行 ng test my-lib
中的测试。希望这有帮助!