2015-03-05 35 views
5

Używam IO.js 1.4.3 i Jest, aby uruchomić moje zestawy testów. Potrzebuję nowszej wersji V8, ponieważ korzystam z funkcji ES6, takich jak obietnice.Jest (JS) błąd segmentacji 11 w IO.js 1.4.3 podczas korzystania require()

Gdybym spróbować najprostszego testu:

describe('the truth', function() { 
    it('is true', function() { 
     expect(true).toBeTruthy(); 
    }); 
}); 

to działa (na szczęście). Gdybym to jednak wezwanie do require() (co mam zrobić, aby przetestować mój własny kod), otrzymuję:

Using Jest CLI v0.4.0 
Waiting on 1 test...Segmentation fault: 11 

Dzieje się tak niezależnie od tego, który moduł I to, i czy mogę zatelefonować do jest.dontMock() pierwszy.

To naprawdę nie mówi mi zbyt wiele qua komunikat o błędzie, a require naprawdę wydaje się być problemem. Czy są jakieś rozwiązania tego innego niż powrót do wersji 1.0 pliku node.js?

+0

Czy możesz zrobić przykładowe repozytorium git, aby zademonstrować błąd? Błędy "błędów segmentacji" są trudne do wyśledzenia, zwłaszcza, że ​​może się to zdarzyć z kilku powodów. – loganfsmyth

+0

Odkryłem, że ten błąd wydaje się być bezpośrednio związany z używaniem wersji o wyższym węźle. Powrót do wersji v0.10.38 sprawia, że ​​działa, ale tak naprawdę nie wiem, dlaczego tak jest. – GTF

Odpowiedz

0

Błędy segmentacji prawie zawsze pochodzą z natywnego kodu C++, ponieważ JS nie może powodować takich awarii, chyba że wyzwoli błąd V8. W związku z tym podejrzewam, że problem dotyczy kontekstowego modułu natywnego, który pośrednio zależy od (przez jsdom).

Warto spróbować zhackować wersję żartu, która zależy od najnowszej jsdom, która nie ma już zależności od rodzimego modułu.

+0

Zaczęło działać z kolejnymi wersjami pliku IO.js. Jest trochę dyskusji w różnych kwestiach Jest, ale wydaje się to w dużej mierze nierozwiązane. – GTF

2

Dzieje się tak w przypadku, gdy zostały zainstalowane node_modules użyciu node w pewnej wersji, a potem przejście na iojs użyciu nvm install iojs i próbuje uruchomić zainstalowaną node_modules z npm. To nie jest prawdopodobne, że to jest twój problem, ale miejmy nadzieję, że każdy, kto będzie googlował, może spróbować i to naprawić.

nvm install iojs 
rm -rf node_modules 
npm install 

następnie działa niezależnie od tego, co próbujesz uruchomić, zwykle coś w rodzaju npm run start.

+0

Masz rację, że to nie był mój problem. Próbowałem już odbudować moduły węzłów. Na szczęście zostało to naprawione w niektórych z plików Jest Jest. – GTF

+0

, proszę, zaznacz to jako odpowiedź –