将新创建的Angle cli项目转换为使用Mocha框架而不是Jasmine

时间:2018-09-05 03:19:14

标签: angular mocha angular-cli karma-mocha karma-chrome-launcher

嘿,我创建了一个具有最新角度cli的新项目。它创建一个使用茉莉花作为测试框架的项目。我想使用摩卡咖啡。

我在项目之后添加了所需的插件 https://github.com/arranbartish/angular-cli-seed/blob/master/karma.conf.js

使用命令ng test enter image description here运行测试时出现以下错误

有人遇到错误或有办法找出导致此问题的原因。

1 个答案:

答案 0 :(得分:3)

问题

在测试环境中使用

zone.js时会使用一些“补丁”。为了方便起见,zone.js提供了一个将所有修补程序捆绑在一起的模块。该模块是zone.js/dist/zone-testing。这是@angular/cli在测试设置中使用的软件包,已导入src/test.ts中。问题是zone.js/dist/zone-testing假设您正在使用茉莉花,并且包含一个茉莉花补丁。茉莉花补丁是导致您出错的原因。

修复

要修复此问题,您只需要自己导入每个补丁即可,而不必使用方便的预包装模块。在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