【发布时间】:2018-11-26 15:52:54
【问题描述】:
我将 angular-cli 与 Karma 一起使用,我需要在运行单元测试时将特定文件排除在编译之外。
有问题的文件在下面的错误中被引用,由于它所依赖的模块不存在而无法编译。
该文件被其他项目使用,该模块将存在,因此编译良好,它只是在这个特定项目中不需要编译但仍需要导出。
我的目录结构如下:
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) 版本更新到最新版本。
有人对这里可能发生的事情有任何想法吗?
谢谢
【问题讨论】:
-
不应该
'.src/tsconfig.spec.json'是'./src/tsconfig.spec.json'?
标签: angular typescript karma-runner