В коммерческом проекте тесты в течение некоторого времени выполнялись нормально. Мы вырезали релиз в Angular 8. На главном компьютере мы обновили до Angular 9. Теперь релизу нужно исправление, поэтому я проверяю ветвь и запускаю тесты. Это все в одном каталоге repo / file system.
Сбой, как Angular core has no exported member ɵɵFactoryDef
, и я быстро определяю, что ошибка вызвана несовместимостью версии CLI .
Поэтому я удаляю ng CLI глобально и переустанавливаю npm i -g @angular/cli@8.2.0
, в соответствии с выпуском ветки пакета. json. Теперь вышеуказанная ошибка исчезла, но когда я пытаюсь ng test
, CLI настаивает на том, что karma.conf не существует. Единственная проблема заключается в том, что, вроде бы, он полностью существует.
Другие вещи, которые я пробовал:
rm -rf
и npm i
с нуля npm cache verify
- закрыть и заново открыть терминалы
- перезагрузить компьютер
- создать новый файл karma.conf с другим именем и указать angular. json для этого
ng cli уважает angular. json в том смысле, что приведенная ниже ошибка изменится в зависимости от имени и пути моего файла кармы, но при этом в MacOS продолжает настаивать на том, что приведенный ниже файл не не существует: На Ма c я все еще получаю: ERROR [config]: File /Users/<various paths that totally exist>/src/karma.<tried different things here>.js does not exist!
Есть идеи? Спасибо !!
--- Редактирование: добавление технической информации ниже для каждого запроса.
тестовый блок из angular.json
:
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"codeCoverage": true,
"karmaConfig": "src/karma.conf.js",
"scripts": ["node_modules/jquery/dist/jquery.js", "node_modules/jquery-mockjax/dist/jquery.mockjax.js"],
"assets": [
"src/favicon.ico",
{
"glob": "**/*.html",
"input": "./src/legacy",
"output": "./"
}
]
}
}
Частичная структура клиентской папки. Обратите внимание, что storybook/
и test/
являются братьями и сестрами src/
, а angular. json на один уровень выше `src /. Я уже пробовал некоторые мутации пути кармы, включая:
"karmaConfig": "./src/karma.conf.js",
"karmaConfig": "../../<correct folders>src/karma.conf.js",
"karmaConfig": "src/karma.<change this>.js",