2014-05-13 25 views
17

Mam konfigurację Idea Web Storm i mogę przeprowadzić testy z powodzeniem, jeśli specyfikacje testów są zdefiniowane w karam.conf.js.Uruchamianie pojedynczego testu Karma Jasmine w Web Storm za pomocą prawego przycisku Menu

Jednak gdybym prawym przyciskiem myszy na pliku JS i wybrać „Uruchom MySpec.js”, otrzymuję ten błąd:

/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 

Może to nie jest możliwe, aby uruchomić testy JS w ten sposób.

Oto config w WebStorm: enter image description here

KT config połączone z plikiem karma.conf.js działa OK, jak już wspomniałem.

Każda pomoc doceniona.

+0

Dlaczego używasz konfiguracji debugowania węzła zamiast konfiguracji karmy? –

+0

Tak więc, nie ma absolutnie żadnego sposobu, aby uruchomić tylko jeden test jak (https://youtrack.jetbrains.com/issue/WEB-10067)? Jeśli debuguję jeden test, chcę uruchomić tylko ten test, a nie cały pakiet. Zakładam, że jest to bardzo powszechny przepływ pracy? – David

+1

@ David To jest cel [testu skoncentrowanego] (http://jasmine.github.io/edge/focused_specs.html), o ile mi wiadomo ... – rixo

Odpowiedz

1

Nie można uruchamiać testów karmy w ten sposób - wymagane moduły nie są ładowane. Co próbujesz zrobić - uruchamiając indywidualny plik testowy? Nie ma sposobu, aby przekazać plik spec do karmy bezpośrednio - patrz https://github.com/karma-runner/karma/issues/553

Jeśli chcesz użyć konfiguracji run node.js aby uruchomić testy karmy, prawidłowe parametry byłyby następujące:

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

  • parametry aplikacyjne: start karma.conf.js

+1

Uzgodnione, że wydaje się to niemożliwe. Uruchamianie ich przez to, co skonfigurowano w pliku karma.conf.js działa dobrze. Byłoby miło po prostu uruchomić jeden pakiet szybko, bez konieczności edycji pliku karma.conf.js. – JamesC

12

ja nie mam WebStorm-SZCZEGÓLNE s olution dla ciebie - Jednak, jeśli chcesz po prostu być w stanie uruchomić tylko niektóre testy jaśminu zamiast nich wszystkich, jest to możliwe dzięki zastosowaniu „focused specs

Zasadniczo Jeśli zmienisz describe do fdescribe lub it do fit jaśmin uruchomi specyfikację tylko z prefiksem f i zignoruje wszystkie pozostałe.

Oto przykład:

fdescribe('Spec1', function() { 

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

describe('Spec2', function() { 

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

Jeśli uruchomić testy jaśminu na temat tego pliku, zostanie uruchomione wszystkie it s w bloku Spec1fdescribe.

Więc jeśli można dostać WebStorm uruchomić wszystkie swoje specyfikacje, można użyć fdescribe i fit skupić się tylko na biegu konkretnych nich.

Wystarczy być ostrożnym, aby nie popełnić kod z fit i fdescribe jeszcze w to, lub może nieumyślnie spowodować serwer CI pominąć działa większość Twoich widowisko :)

+0

Dodałem nagrodę tydzień temu, właśnie to wykorzystałem po dalszych badaniach. – David

+0

jest też karma 'ddescribe', dla każdego zainteresowanego – David

+1

Uważam, że to raczej głupie, aby przesuwać kod, zamiast mieć tylko opcję" --grrep "przez cały czas ... Czy naprawdę nie ma innego sposobu, jak tylko majstrować przy testy i upewnienie się, że nie "git add."? –

0

dla angular2 projektu, skopiuj karma.conf Pliki .js i src/test.ts do plików nazywają je takimi jak karma.single.conf.js i src/test.single.ts.

Edytuj plik karma.single.conf. Zmień 2 miejsca, które odwołują się do src/test.ts do src/test.single.ts (pliki i pattens).

W teście.Zmiana

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

do regex dla pliku testowego lub plików, które chcesz przetestować

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

Następnie Uruchom-> Edytuj Konfiguracje stworzyć cel Karma i zmienić plik konfiguracyjny do karmy plik single.ts. single.conf.js