Nuestro proyecto actualmente usa jest para pruebas angulares. Usamos jest-preset-angular y está configurado para ejecutarse en modo de depuración dentro de Visual Studio Code. La depuración funciona excepto que primero convierte los archivos spec.ts a JavaScript. Esto significa que el punto de interrupción generalmente no está donde quiero que esté, ya que el archivo se ha transformado de TypeScript a JavaScript.
¿Cómo puedo configurar mi proyecto para poder depurar mis pruebas como Typescript dentro de Visual Studio Code?
He intentado ejecutar Karma junto con Jest, ya que la experiencia de Karma para la depuración en el navegador es mucho más fácil. Sin embargo, hay tantas dependencias de Jest dentro de las pruebas que esto también es un desafío.
launch.json { "name": "Tests", "type": "node", "request": "launch", "program": "${workspaceRoot}/node_modules/jest-cli/bin/jest.js", "stopOnEntry": false, "args": ["-i", "-o"], "cwd": "${workspaceRoot}", "preLaunchTask": null, "runtimeExecutable": null, "env": { "NODE_ENV": "test" }, "console": "integratedTerminal", "outFiles": ["${workspaceRoot}/dist/**/*"], "sourceMaps": true }paquete.json
"jest": { "preset": "jest-preset-angular", "setupFilesAfterEnv": [ "<rootDir>/setupJest.ts" ], "moduleDirectories": [ "node_modules", "./" ], "testResultsProcessor": "jest-teamcity-reporter", "testMatch": [ "**/app/**/*.spec.ts" ]tsconfig.spec.json
{ "extends": "./tsconfig.json", "compilerOptions": { "allowSyntheticDefaultImports": true, "esModuleInterop": true, "outDir": "../out-tsc/spec", "module": "commonjs", "types": ["jest", "node"] }, "files": ["src/test.ts", "src/polyfills.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] }Finalmente encontré una sugerencia en un artículo de Micha Pierzchala que estaba vinculado en https://jestjs.io/docs/testing-frameworks#angular . El artículo recomienda integraciones IDE, siendo vscode-jest la de VS Code. Esto es exactamente lo que estaba buscando y brinda una fantástica experiencia de depuración para su código TypeScript.
No tuve que cambiar nada sobre mi configuración de broma. Simplemente agregué esta extensión a mi espacio de trabajo de VS Code.
Editar : encontré que vscode-jest tenía bastantes errores, así que cambié a vscode-jest-runner. Con esta extensión, inicia la prueba desde un menú contextual del botón derecho. Tiene el mismo resultado al hacer que la experiencia de depuración sea mucho más agradable para su código TypeScript.