dig*_*lok 13 karma-jasmine angular
在我们的项目中,为了减少运行测试的数量,并且在开发过程中仅针对某些文件运行特定测试,我们使用了我们自己的脚本和此技术:
然而,在迁移到 Angular 15 后,这个“上下文”内容已从 test.ts 文件中删除。
有没有办法在 Angular 15 中仍然使用相同的技术?
我尝试将“上下文”返回到 test.ts,但没有成功。
require.context
我刚刚遇到了同样的问题,将应用程序从 Angular 14 转换为 15,结果发现解决方案更简单:只需删除src/test.ts
. require.context()
不再需要调用。
我曾经有
const context = require.context("./", true, /\.spec\.ts$/);
context.keys().forEach(context);
Run Code Online (Sandbox Code Playgroud)
在末尾src/test.ts
,但现在我删除了这两行,我的测试都像以前在 Angular 14 中一样运行。
我无法找到有关此更改的正确文档(这就是我首先提出这个问题的原因),但我的假设是 Karma 现在会自动查找所有文件*.spec.ts
,我们不再需要指示它这样做。
"include"
仅当您想要限制要运行的规范文件列表时,才需要在/"include"
下添加该属性。"test":
"options":
所以,根据我的测试,配置angular.json
如下:
"test": {
"options": {
"include": ["**/*.spec.ts"],
...
},
...
Run Code Online (Sandbox Code Playgroud)
或相同,没有"include"
,所有规范文件都会被执行。
但配置angular.json
是这样的:
"test": {
"options": {
"include": ["**/app.component.spec.ts"],
...
},
...
Run Code Online (Sandbox Code Playgroud)
只有规范文件调用app.component.spec.ts
才真正得到执行。
我不知道您为什么要限制执行哪些规范文件,但我认为值得在这里记录下来以了解发生了什么。
test.ts 文件不再由 Angular 生成,并且main
Angular.json 中不再允许使用用于链接该文件的属性,您可以使用 Angular.json 中的 include 属性来添加模式或文件名
"test": {
...
"options": {
"include": [
"**/app.component.spec.ts"
]
...
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6788 次 |
最近记录: |