angular - 在 karma 测试运行期间从编译中排除文件

标签 angular typescript karma-runner

我在 Karma 中使用 angular-cli,我需要在运行单元测试时排除特定文件的编译。

有问题的文件在下面的错误中被引用,由于它所依赖的模块不存在而无法编译。

enter image description here

此文件由模块将存在的其他项目使用,因此可以正常编译,只是在这个特定项目中它不需要编译但仍需要导出。

我的目录结构如下:

index.ts
    - /src
    - /testing

在我的 index.ts 文件中,我有一个导出:

export * from './src/core';

我的testing下的TS源文件文件夹正在被编译器拾取,我不确定为什么我没有在我的 src 下的文件中导入此文件夹下的任何文件文件夹或我所知道的任何其他地方。

我想阻止编译器完全选取我的测试文件夹,但我无法让它忽略它。

我正在使用 angular-cli,在我的 .angular-cli.json 文件中有这些行:

"tsconfig": "tsconfig.json",
"testTsconfig": "tsconfig.spec.json"

这两个文件都位于我的 src 下文件夹,我尝试像这样向我的 tsconfig.spec.json 添加一些排除模式:

"exclude": [
        "../testing",
        "testing"
    ]

但这并没有什么不同。

然后我想知道 karma 是否确实在使用我的 tsconfig.spec.json 文件,所以我添加了以下内容:

 karmaTypescriptConfig : {
        tsconfig: '.src/tsconfig.spec.json',
    }

但同样,仍然没有任何区别,我的测试文件夹在准备运行我的测试时被编译器选中。

我不确定还能尝试什么,我已经将我的 TypeScript(3.1.6) 和 Karma(3.1.1) 版本更新到最新版本。

有没有人对这里可能发生的事情有任何想法?

谢谢

最佳答案

也许你的路径不够精确。我们可以看到您的项目伪 TreeView 吗?尤其是要排除的文件的路径?

配置文件可能是这样的:

"exclude": [
        "someFolder/**/o3-test-harness.class.ts"
    ]

关于angular - 在 karma 测试运行期间从编译中排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53484757/

相关文章:

css - Angular 6 : Update NG Style with function

typescript - "export as namespace foo"的目的是什么?

typescript - 如何调试 TypeScript 编译性能问题

karma-runner - Karma 代码覆盖率 - 总是 100%?

typescript - 尝试使用 Karma 为 Typescript 项目设置单元测试

javascript - 如何使用 Jasmine/Karma 测试对 DOM 元素的修改?

angular - 属性 'onDidDismiss' 在 ionic 4 和 Angular 类型上不存在

在 IE 11 上使用占位符文本时,Angular2 将 <textarea> 设置为脏

具有多个客户端的 Web 应用程序数据库

javascript - 我可以在 Javascript/Typescript 的函数中以编程方式调用另一个具有相同名称的函数吗?