2013-05-02 20 views
60

Jestem nowa w Karmie, ale zastanawiam się, jak wyświetlić jej wyniki w przeglądarce (podobnie jak w interakcji z Jasmine, gdy obecny jest plik runner.html).Wyświetl dane wyjściowe testu Karma w przeglądarce?

oglądałem screencast wprowadzający i rozumiem, jak przeglądać wyników testu w oknie konsoli, ale w mojej przeglądarce, mam prawie żadnej treści Karmy wyjątkiem

Karma - połączony

Proszę doradź! Chciałbym uniknąć konieczności utrzymywania oddzielnego pliku runner.html, ponieważ plik konfiguracyjny Karmy wymaga już uwzględnienia wszystkich niezbędnych odsyłaczy do skryptów.

+1

Na moim komputerze z systemem Linux Karma otwiera także Chromium i mówi, że jest podłączony, ale natychmiast zamyka przeglądarkę. I tak, singleRun jest fałszywy w konfiguracji Karmy. – Stephane

+0

Widzę ten sam problem @StephaneEybert, rozwiązałeś go? – ChrisFletcher

+0

@ChrisFletcher Zmieniłem z Chrome na PhantomJS w pliku test/karma.conf.js, po czym: przeglądarki: [ // "Chrome" ], – Stephane

Odpowiedz

2

Jedną z opcji jest otwarcie konsoli Javascript w przeglądarce. Karma tworzy wpis dziennika dla każdego testu, łącznie z wynikiem.

9

Należy uruchomić go pod singleRun = false w karma.conf.js, a następnie kliknąć przycisk w górnym rogu z napisem "DEBUG". Następnie powinieneś zobaczyć wyjście i nie zniknie ani nie zamknie się. Będziesz także mógł korzystać z konsoli do debugowania.

Warto zauważyć, że debugowanie testów e2e nie jest takie łatwe, ponieważ są oparte na "przyszłości", więc nie będzie można przechwycić wartości (afaik).

+0

To nie działa dla mnie @Chris, Wiem, że to stara odpowiedź, ale czy macie jakieś sugestie, dlaczego tak się dzieje? – ChrisFletcher

+0

Przepraszam, minęło trochę czasu i ostatnio nie używam Karmy tak często. Wiele się zmieniło. –

25

AFAIK, dwie poprzednie odpowiedzi są poprawne, ponieważ chcesz uruchomić testy w przeglądarce; kliknij DEBUG i wyświetl wynik w konsoli.

Grzecznie zaprzeczając poprzedniej odpowiedzi, regularnie robię to i krok po kroku debuguję z pełną zmienną interakcją za pomocą Karmy.

Właściwa odpowiedź na twoje pytanie, ponieważ to, czego potrzebujesz, to całkiem niezły wynik HTML, to "nie". Jednak ta wtyczka do karmy może dać ci pożądane rezultaty.

https://npmjs.org/package/karma-html-reporter

+0

Dzięki, powinienem wspomnieć, że musisz otworzyć konsolę, aby zobaczyć cokolwiek, nie tylko po to, aby debugować testy. Powinienem sprawdzić tego reportera. –

+0

thx bro nice one !! –

2

chciałem wyświetlić HTML5 Web Notifications z Karma więc napisałem coś szybko, aby zmusić go do pracy z Karma wersji 0.11. Może zachowywać się nieco inaczej w przypadku innych wersji. Wczytuję skrypt do reszty skryptów aplikacji, przechowa on wyniki testu karmy i po jego zakończeniu ustali sukces testu, a następnie zresetuje do pierwotnych funkcji karmy, aby nie zostały zmienione po uruchomieniu skryptu jeszcze raz.

// store all my test results 
var results = []; 
// Wrap the karma result function 
var resultFunc = window.__karma__.result; 
window.__karma__.result = function(result){ 
    // run the original function 
    resultFunc(result); 
    // push each result on my storage array 
    results.push(result); 
} 

// wrap the karma complete function 
var completeFunc = window.__karma__.complete; 
window.__karma__.complete = function(result){ 
    // run the original function 
    completeFunc(result); 
    // determine success 
    var success = results.every(function(r){ return r.success }); 

    if (success) { 
     // display a success notification 
    } 
    else { 
     // display a test failure notification 
    } 

    // reset the result function 
    window.__karma__.result = resultFunc; 
    // reset the complete function 
    window.__karma__.complete = completeFunc; 
} 
Powiązane problemy