angular - 如何在 Angular 6 的生产构建中忽略规范文件和模拟文件

标签 angular testing

我正在尝试在生产环境中编译我的 Angular 应用程序,但我收到了这个错误:

Cannot determine the module for class TranslateMockPipe in /src/testing/translate.service.spec.ts! Add TranslateMockPipe to the NgModule to fix it.

这个 TranslateMockPipe 类是我声明的一个通用类,我在所有测试文件中都使用它以避免在所有测试用例中重复相同的代码行

类的代码:

@Pipe({ name: "translate" })
class TranslateMockPipe {
    transform = (ss) => ss
}

我在我的测试中使用它是这样的:

TestBed.configureTestingModule({
            declarations: [
                DemoComponent,
                TranslateMockPipe
            ]
})

如果我运行项目一切顺利,并且我的测试通过没有问题但是当我尝试为生产编译时失败

我如何才能忽略这种用于生产构建的假类?

最佳答案

你可以在这个 ticket 上阅读它但最简单的方法应该是:

  • 添加您拥有测试实用程序的路径,例如“./app/shared/tests/”并在您的 tsconfig.json 中添加:

    "exclude": [
      "./app/shared/tests/*.ts"
    ]
    

  • 创建一个模块,该模块不会导入到除 Testbed 模块之外的任何其他模块,将其用于测试目的,并包括模拟、 stub 等...

关于angular - 如何在 Angular 6 的生产构建中忽略规范文件和模拟文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547657/

相关文章:

c# - 确定二进制文件的相似性

javascript - 模板中默认选择 Angular 4 选项

具有 ASP.NET Web API 验证的 Angular 2

javascript - 如何在响应式(Reactive)表单的 formGroup 中以编程方式检查多个复选框?

scala - 我可以检查 Mockito when() 语句中的参数内部吗?

ruby-on-rails - 在 Rails 中如何测试模型是否具有给定的方法?

ruby - 运行 RSpec 时找不到库类

java - 在phpbb3中获取form_token和time_creation

angular - 与其他组件或服务共享可观察量

javascript - RXJS 可观察对象上方法 .pipe() 和 .subscribe() 的区别