Depuración de pruebas de unidades Jest con puntos de interrupción en el código VS con React Native
Creé un proyecto React Native usando el popularEncender CLI v2.0.0
con elrepetitivo predeterminado. Luego lo adorné con un montón de cuñas de nodejs, porque tendré algunas dependencias basadas en nodos. Todo funciona y puedo ejecutar las pruebas de Jest desde la línea de comandos. Hasta aquí todo bien.
Sin embargo, ahora una de mis pruebas unitarias se está agotando. Esto probablemente se deba a una falla de llamada asincrónica que invoca una función de nodo simulada. Pero no hay información sobre error, ubicación, etc.
Entonces quiero depurar usando Visual Studio Codev1.13.1
Y aquí comienza el problema. No puedo por mi vida descubrir cómo configurar esto para poder establecer puntos de interrupciónambos en las pruebas como en el código de la aplicación +node_modules
.
He instalado React Native Toolsv0.3.2
y puede iniciar el depurador utilizando el valor predeterminadoDebug Android
configuración:
[vscode-react-native] Finished executing: adb -s emulator-5554 shell am broadcast -a "com.myexample.RELOAD_APP_ACTION" --ez jsproxy true
[vscode-react-native] Starting debugger app worker.
[vscode-react-native] Established a connection with the Proxy (Packager) to the React Native application
[vscode-react-native] Debugger worker loaded runtime on port 13746
Running application "MyApplication" with appParams: {"rootTag":1}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
Pero no se alcanzan puntos de interrupción. VS dice:Breakpoint ignored because generated code not found (source map problem?).
(por cierto: ambosindex.android.bundle
yindex.android.map
acaban de generarse en.vscode/.react
) Y tampoco veo una forma de depurar a través del código de prueba (que vive en${projectRoot}/Tests
)
Basado en mucho googleé, creé otra configuración de depuración para ejecutar Jest en VS Code:
{
"type": "node",
"request": "launch",
"name": "Jest Tests",
"program": "${workspaceRoot}/node_modules/jest-cli/bin/jest.js",
"args": [
"--config",
"package.json",
"--runInBand",
"--verbose",
"--no-cache",
"-u"
],
"runtimeArgs": [
"--nolazy"
],
"console": "internalConsole",
"sourceMaps": true,
"address": "localhost",
"port": 8081,
"outFiles": [
"${workspaceRoot}/.vscode/.react"
],
"env": {
"NODE_ENV": "test"
}
}
Esto al menos ejecuta las pruebas, mostrando el informe de prueba en la consola de depuración de VS, pero una vez más no se alcanza ningún punto de interrupción en ninguna parte.
También intenté configuraroutFiles
a la ubicación donde ignite genera el paquete, es decir${workspaceRoot}/android/app/build/intermediates/assets/debug/*
con los mismos resultados
¿Alguien puede hacerme el favor de indicarme la dirección correcta?
PD. Estoy en Ubuntu 16.04:
System
platform linux
arch x64
cpu 4 cores Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
JavaScript
node 8.1.2 /usr/local/bin/node
npm 4.6.1 /usr/local/bin/npm
yarn 0.24.6 /usr/bin/yarn
React Native
react-native-cli 2.0.1
app rn version 0.45.1
Ignite
ignite 2.0.0 /usr/local/bin/ignite
Android
java 1.8.0_111 /usr/bin/java
android home - undefined