Я попытался заставить Jest правильно работать в коде Visual Studio.Хотя я могу отладить Typescript без проблем, я не могу найти правильные строки включенных функций с помощью Jest.
У меня есть тестовый файл, который импортирует мой модуль:
import { Validate } from "./validate";
describe('Test the Validate', () => {
it('should return true', () => {
expect(Validate('abc')).toBeTruthy();
});
it('should return false', () => {
expect(Validate('cba')).toBeFalsy();
});
});
validate.ts:
export function Validate(Text:string):boolean {
if (Text === 'abc') {
return true;
}
return false;
}
Я ставлю точку останова на строке expect(Validate('abc')).toBeTruthy();
, которая, похоже, приводит к остановке кода.Когда я нажимаю F11, чтобы войти в функцию, я перехожу к исходному файлу, но мой курсор находится в конце файла.Может показаться, что я выполняю отладку вместе с F10, но не вижу правильной исходной строки.
Я добавил sourceMaps: true,
в мой launch.json.
launch.json
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["${relativeFile}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"sourceMaps": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
}
Кроме того, использование ts-jest, как показано ниже, не изменило результат:
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceFolder}/node_modules/.bin/ts-jest",
"args": ["${relativeFile}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"sourceMaps": true,
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}