2014-05-13 4 views
17

Ho impostato Idea Web Storm e posso eseguire i test Karma se le specifiche di prova sono definite nello karam.conf.js.Esecuzione di un singolo test Karma Jasmine in Web Storm tramite menu clic destro

Tuttavia, se mi fate clic destro sul file JS e scegliere 'Run MySpec.js', ottengo questo errore:

/usr/bin/node MyTestSpec.js 

/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4 
describe('Activate wallet controller --', function() { 
^ 
ReferenceError: describe is not defined 
    at Object.<anonymous> (/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:901:3 

Process finished with exit code 8 

forse non è possibile eseguire i test JS in questo modo.

Ecco il config nella WebStorm: enter image description here

La configurazione KT collegato al file karma.conf.js funziona bene come ho già detto.

Qualsiasi aiuto apprezzato.

+0

Perché stai utilizzando una configurazione di debug del nodo invece di una configurazione di karma? –

+0

Quindi, non c'è assolutamente alcun modo di eseguire un solo test come (https://youtrack.jetbrains.com/issue/WEB-10067)? Se eseguo il debug di un test, voglio eseguire solo quel test, non l'intera suite. Immagino che questo sia un flusso di lavoro molto comune? – David

+1

@David Questo è lo scopo del [test focalizzato] (http://jasmine.github.io/edge/focused_specs.html), che è abbastanza buono per quanto mi riguarda ... – rixo

risposta

1

Non è possibile eseguire test karma in questo modo, i moduli richiesti non vengono caricati. Che cosa stai cercando di fare: eseguire un singolo file di test? Non v'è alcun modo per passare un file di specifica al karma direttamente - vedi https://github.com/karma-runner/karma/issues/553

Se si desidera utilizzare la configurazione corsa Node.js per eseguire test karma, i parametri corretti sarebbero i seguenti:

  • Javascript di file:/usr/local/bin/karma

  • parametri di applicazione: iniziano karma.conf.js

+1

D'accordo, questo sembra impossibile. Eseguendoli tramite whats configurato nel karma.conf.js funziona bene. Sarebbe bello eseguire semplicemente una singola suite senza dover modificare il file karma.conf.js. – JamesC

12

non ho s una WebStorm-specifci oluzione per voi - Tuttavia, se si vuole essere semplicemente in grado di eseguire solo alcune prove di gelsomino, invece di tutti loro, questo è possibile attraverso l'uso di "focused specs"

In sostanza, se si cambia describe-fdescribe o it-fit , jasmine eseguirà solo le specifiche con il prefisso f e ignorerà tutte le altre.

Ecco un esempio:

fdescribe('Spec1', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

describe('Spec2', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

Se si esegue i test di gelsomino su questo file, verrà eseguito tutti it s nel blocco Spec1fdescribe.

Quindi, se è possibile ottenere WebStorm per eseguire tutte le vostre specifiche, è possibile utilizzare fdescribe e fit mettere a fuoco la corsa su quelli solo specifici.

Basta essere attenti a non commettere il codice con fit e fdescribe ancora in esso, o si potrebbe involontariamente causare il server CI di saltare in esecuzione la maggior parte delle caratteristiche del tuo :)

+0

Ho aggiunto la taglia una settimana fa, questo è esattamente quello che ho finito usando dopo ulteriori ricerche. – David

+0

c'è anche il karma 'ddescribe', per chiunque sia interessato a – David

+1

Trovo piuttosto sciocco il bisogno di usare il codice piuttosto che avere solo un'opzione' --grep' tutto il tempo ... Non c'è davvero altro modo se non quello di armeggiare con il prova e assicurandosi di non "aggiungere git".? –

0

Per un progetto angular2, copiare karma.conf I file .js e src/test.ts in file li chiamavano qualcosa come karma.single.conf.js e src/test.single.ts.

Modificare il file karma.single.conf. Cambia le 2 posizioni che fanno riferimento a src/test.ts a src/test.single.ts (file e pattens).

Nel test.file di single.ts cambiamento

let context = require.context('./', true, /\.spec\.ts/); 

per l'espressione regolare per il file di test o di file che si desidera testare

let context = require.context('./', true, /data\.service\.spec\.ts/); 

Poi run-> Modifica configurazioni creare un obiettivo Karma e modificare il file di configurazione per il karma. single.conf.js