我正在尝试在生产环境中编译我的角度应用程序,并且收到此错误:
无法确定类别TranslateMockPipe中的模块 /src/testing/translate.service.spec.ts!将TranslateMockPipe添加到 NgModule对其进行修复。
这个TranslateMockPipe
类是我声明的通用类,为了避免在所有测试用例中重复同一行代码,我在所有测试文件中都使用了该类。
该类的代码:
@Pipe({ name: "translate" })
class TranslateMockPipe {
transform = (ss) => ss
}
我正在像这样在测试中使用它:
TestBed.configureTestingModule({
declarations: [
DemoComponent,
TranslateMockPipe
]
})
如果我运行项目,一切都会顺利进行,并且测试可以顺利通过,但是在尝试进行生产编译时会失败
我该如何忽略这种用于生产构建的假类?
答案 0 :(得分:0)
您可以在此ticket上进行阅读,但最简单的方法应该是:
添加一条测试实用程序的路径,例如“ ./app/shared/tests/”,然后在您的tsconfig.json中添加:
"exclude": [
"./app/shared/tests/*.ts"
]
创建一个模块,该模块除了用于测试目的的Testbed模块外,不会导入其他任何模块,并且包含模拟,存根等...
答案 1 :(得分:0)
如果您将Ionic Framework与Angular一起使用,则需要更新exclude
中的tsconfig.app.json
部分,以便它列出错误消息中显示的文件(或者很可能是所有类似名称的文件)
错误:
无法在/src/testing/translate.service.spec.ts中确定类TranslateMockPipe的模块!将TranslateMockPipe添加到NgModule中进行修复。
tsconfig.app.json
...
"exclude": [
"src/testing/*.service.spec.ts"
]
...