2015-12-16 11 views
8

używam moich testów z karmą i fantomu Używam mokka i sinon i czasami testy przechodzą, a czasami bez powodu otrzymuję ten błąd:kątowa karma fantom przed każdym błędem haka

✖ "before each" hook: workFn 
     ✔ should call get user api 
    ✖ "after each" hook for "should call get user api" 

Finished in 1.04 secs/0.2 secs 

SUMMARY: 
✔ 42 tests completed 
✖ 3 tests failed 

FAILED TESTS: 
    UserService 
    ✖ "before each" hook: workFn 
     PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    TypeError: 'null' is not an object (evaluating 'document.querySelector('.arrow' + index).classList') (public/client/build/main.js:3195) 

    ✖ "after each" hook for "should call get user api" 
    PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    TypeError: 'null' is not an object (evaluating 'currentSpec.$injector') 
     at public/vendor/angular-mocks/angular-mocks.js:2229 

Co może przyczyną tego problemu?

+3

nie zdefiniowałeś makiety? Ciężko jest zobaczyć, co jest nie tak z kodem, nie widząc kodu ... – Icepickle

+0

Problem polega na tym, że resetuję karmę, która działa, nie wiem, od czego to się nie udaje od czasu do czasu. – user233232

+0

Mam ten sam błąd z PhantomJS 2.0.0. Wygląda na to, że jest to błąd związany z angularMock, natomiast zmiana wersji na 1.4.X wydaje się naprawić problem. –

Odpowiedz

0

problem jest wyraźnie podświetlony na wyjściu karmy, nie?

'document.querySelector('.arrow' + index).classList'

nie mógł znaleźć na elemencie przez selektor, tak classList undefined jest null. Musisz się w to zagłębić.

+1

Problem polega na tym, że testy są przerywane i tylko przy użyciu PhantomJS. –

3

Z mojego doświadczenia wynika, że ​​połączenia DOM z użyciem Karmy i/lub PhantomJS mogą stanowić problem. DOM w PhantomJS nie działa dokładnie tak, jak standardowa przeglądarka i jako taki często popełnia błędy w operacjach GUI.

Moja rada (choć może nie być najlepsza) polega na szpiegowaniu lub wyszydzaniu metod dokumentu, których używasz od document, ponieważ to, co robią, jest poza twoimi rękami.

Powiązane problemy