Фон
Я работаю над проектом, который возник как проект angular.js. В настоящее время мы переносим все на Angular. Это означает, что у нас есть устаревшие модульные тесты для Angular.js, которые в конечном итоге будут удалены. Для Angular мы перенесли все тесты в Jest.
Проблема
Проблема возникает при попытке использовать оба Karma and Jasmine
как Jest
в проекте. Устаревшие модульные тесты связаны с собственным файлом tsconfig, и они отлично работают. Кажется, что обе библиотеки добавляют одни и те же функции в глобальную среду, и тесты Jest продолжают разрешать типы Jasmine
. Если я удаляю Karma and Jasmine
из проекта, все тесты работают нормально.
Вопрос
Как можно исключить jasmine's
типы, такие как expect
при запускеJest без удаления karma and jasmine
из проекта в целом?
Я пробовал
У меня есть отдельный файл tsconfig.spec
для тестов Jest, на которые я ссылался вфайл jest.config.js
. В этом я попытался добавить только нужные типы. Который я думал только загрузит node_modules/@types/<included>
. Но он все равно будет включать жасмин.
"compilerOptions": {
"types": ["node", "jquery", "jest"],
Я также пытался включить их через typeRoots
, но это только дает мне больше ошибок, таких как: error TS2708: Cannot use namespace 'jest' as a value.
.
{
"compilerOptions": {
"outDir": "../out-tsc/spec",
"typeRoots": [
"../node_modules/@types/jest"
...
],
"baseUrl": ".",
"paths": {
"*": ["./*"]
},
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"target": "es5",
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"allowJs": true
},
"files": ["polyfills.ts"],
"include": ["./app/**/*.spec.ts"]
}
Почему-то я не могу заставить TypeScript игнорировать node_modules/@types/jasmine
. Любая помощь или указатели будут с благодарностью.