嘿,我用最新的 angular cli 创建了一个新项目。它创建了一个使用 jasmine 作为测试框架的项目。我想用 Mocha 。
我在项目后面添加了所需的插件 https://github.com/arranbartish/angular-cli-seed/blob/master/karma.conf.js
有没有人遇到过错误,或者有什么方法可以找出导致此问题的原因。
最佳答案
问题
zone.js
在测试环境中使用时会使用一些“补丁”。为方便起见,zone.js
提供了一个将所有这些补丁捆绑在一起的模块。该模块是 zone.js/dist/zone-testing
。这是 @angular/cli
在测试设置中使用的包,它被导入到 src/test.ts
中。问题是 zone.js/dist/zone-testing
假定您正在使用 jasmine 并包含一个 jasmine 补丁。 Jasmine 补丁是导致错误的原因。
修复
要修复它,您只需自己导入每个补丁,而不是使用方便的预打包模块。在 src/test.ts
import 'zone.js/dist/zone-testing';
需要成为
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/mocha-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import 'zone.js/dist/zone-patch-promise-test';
这些是 zone.js/dist/zone-testing
使用的完全相同的包;但是,它正在导入 mocha-patch
而不是 jasmine-patch
。
关于angular - 将新创建的 angular cli 项目转换为使用 mocha 框架而不是 jasmine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52176565/