我在 Karma 中使用 angular-cli,我需要在运行单元测试时排除特定文件的编译。
有问题的文件在下面的错误中被引用,由于它所依赖的模块不存在而无法编译。
此文件由模块将存在的其他项目使用,因此可以正常编译,只是在这个特定项目中它不需要编译但仍需要导出。
我的目录结构如下:
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/