Преобразование недавно созданного углового проекта cli для использования mocha framework вместо jasmine

Привет, я создал новый проект с последним угловым кликом. Он создает проект, который использует жасмин в качестве основы тестирования. Я хотел использовать мокко.

Я добавил необходимые плагины после проекта https://github.com/arranbartish/angular-cli-seed/blob/master/karma.conf.js

Я получаю следующую ошибку при запуске теста с помощью команды ng test введите описание изображения здесь

Кто-нибудь сталкивался с ошибкой или есть способ выяснить, что вызывает эту проблему.

0 ответов

Эта проблема

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,

Другие вопросы по тегам