Comando completo per eseguire un singolo test Jest
Comando:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:
- Finestre:
node_modules\jest\bin\jest.js
- Altri:
node_modules/.bin/jest
-i <you-test-file>
: percorso del file con test ( js
o ts
)
-c <jest-config>
: percorso di un file di configurazione Jest separato (JSON), se mantieni la tua configurazione Jest package.json
non devi specificare questo parametro (Jest lo troverà senza il tuo aiuto)
-t <the-name-of-test-block>
: In realtà si tratta di un nome (il primo parametro) di describe(...)
, it(...)
o test(...)
blocco.
Esempio:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
Quindi, il comando
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
eseguirà il test it("1 + 1 = 2", ...)
, ma se cambi il -t
parametro in "math tests"
allora eseguirà entrambi i test dal describe("math tests",...)
blocco.
Osservazioni:
- Per Windows sostituire
node_modules/.bin/jest
con node_modules\jest\bin\jest.js
.
- Questo approccio consente di eseguire il debug dello script in esecuzione. Per abilitare il debug aggiungere il
'--inspect-brk'
parametro al comando.
Esecuzione di un singolo test Jest tramite script NPM in "package.json"
Avendo installato Jest puoi semplificare la sintassi di questo comando (sopra) usando gli script NPM . In "package.json"
aggiungi un nuovo script alla "scripts"
sezione:
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
In questo caso, usiamo un alias 'jest'
invece di scriverne l'intero percorso. Inoltre, non specifichiamo il percorso del file di configurazione poiché possiamo posizionarlo "package.json"
e Jest lo esaminerà per impostazione predefinita. Ora puoi eseguire il comando:
npm run test:math
e "math tests"
verrà eseguito il blocco con due test. Oppure, ovviamente, puoi specificare un test in particolare con il suo nome.
Un'altra opzione sarebbe quella di estrarre il <the-name-of-test-block>
parametro fuori dallo "test:math"
script e passarlo dal comando NPM:
package.json:
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
Comando:
npm run test:math "math tests"
Ora puoi gestire il nome dei test di esecuzione con un comando molto più breve.
Osservazioni:
- Il
'jest'
comando funzionerà con gli script NPM perché
npm rende "./node_modules/.bin"
la prima voce nella PATH
variabile d'ambiente quando si esegue uno script del ciclo di vita, quindi funzionerà bene, anche se il programma non è installato a livello globale ( blog NPM )
- Questo approccio non sembra consentire il debug perché Jest viene eseguito tramite il suo binario / CLI , non tramite
node
.
Esecuzione del test Jest selezionato in Visual Studio Code
Se stai usando Visual Studio Code puoi sfruttarlo ed eseguire il test attualmente selezionato (nell'editor del codice) premendo il F5
pulsante. Per fare ciò avremo bisogno di creare un nuovo blocco di configurazione di avvio nel ".vscode/launch.json"
file. In quella configurazione, useremo variabili predefinite che vengono sostituite con i valori appropriati (purtroppo non sempre ) durante l'esecuzione. Di tutti i disponibili siamo interessati solo a questi:
${relativeFile}
- il file aperto corrente relativo a
${workspaceFolder}
${selectedText}
- il testo attualmente selezionato nel file attivo
Ma prima di scrivere launch config dovremmo aggiungere lo 'test'
script nel nostro 'package.json'
(se non lo abbiamo ancora).
package.json:
"scripts": {
"test": "jest"
}
allora possiamo usarlo nella nostra configurazione di lancio.
Avvia configurazione:
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
in realtà fa lo stesso dei comandi descritti in precedenza in questa risposta. Ora che tutto è pronto, possiamo eseguire qualsiasi test desideriamo senza dover riscrivere manualmente i parametri del comando.
Ecco tutto ciò che devi fare:
- Seleziona la configurazione di avvio attualmente creata nel pannello di debug:
- Apri il file con i test nell'editor di codice e seleziona il nome del test che vuoi testare (senza virgolette):
- Premere il
'F5'
pulsante.
E voilà!
Ora per eseguire qualsiasi test desiderato basta aprirlo nell'editor, selezionare il suo nome e premere F5.
Sfortunatamente, non sarà "voilà" sui computer Windows perché sostituiscono (chissà perché) la ${relativeFile}
variabile con il percorso con barre rovesciate e Jest non capirà un tale percorso.
Osservazioni:
- Per eseguire il debugger non dimenticare di aggiungere il
'--inspect-brk'
parametro.
- In questo esempio di configurazione, non abbiamo il parametro di configurazione Jest supponendo che sia incluso in
'package.json'
.