3

嘿,我用最新的 angular cli 创建了一个新项目。它创建了一个使用 jasmine 作为测试框架的项目。我想用摩卡。

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

使用命令 ng test 运行测试时出现以下错误在此处输入图像描述

有没有人遇到过错误,或者有没有办法找出是什么导致了这个问题。

4

1 回答 1

5

问题

zone.js在测试环境中使用时使用了一些“补丁”。为方便起见,zone.js提供将所有这些补丁捆绑在一起的单个模块。该模块是zone.js/dist/zone-testing. 这是@angular/cli在测试设置中使用的包,它以src/test.ts. 问题是zone.js/dist/zone-testing假设您使用的是 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.

于 2018-12-21T21:01:31.617 回答