2015-03-05 10 views
5

Sto usando IO.js 1.4.3 e Jest per eseguire le mie suite di test. Ho bisogno di una versione più recente del V8 perché sto usando funzionalità ES6 come Promises.Errore di segmentazione Jest (JS) 11 in IO.js 1.4.3 quando si utilizza require()

Se provo la più semplice di prova possibile:

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

funziona (per fortuna). Se includo, però, una chiamata a require() (che devo fare per testare il mio codice), ottengo:

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

Questo accade a prescindere da quale modulo includo, e se io faccio una chiamata a jest.dontMock() primo.

Questo in realtà non mi dice molto messaggio di errore, e require sembra davvero essere il problema. Ci sono soluzioni a questo oltre a tornare a pre-1.0 node.js?

+0

Puoi fare un esempio git repo per dimostrare il bug? Gli errori di 'Segmentation fault' sono difficili da rintracciare, specialmente perché questo potrebbe accadere per diversi motivi. – loganfsmyth

+0

Ho scoperto che questo errore sembra essere direttamente correlato all'utilizzo di una versione di nodo superiore. Tornando alla v0.10.38, Jest funziona, ma non so davvero perché sia ​​così. – GTF

risposta

0

Gli errori di segmentazione provengono quasi sempre dal codice C++ nativo, poiché JS non può causare tali arresti anomali a meno che non attivi un errore V8. Come tale, sospetto che il problema sia con il modulo contextify nativo che jest indirettamente dipende (tramite jsdom).

Potrebbe valere la pena provare ad hackerare una versione di jest che dipende dall'ultimo jsdom, che non ha più una dipendenza del modulo nativo.

+0

Ha iniziato a lavorare con le versioni successive di IO.js. C'è qualche discussione su varie questioni di Jest su questo, ma sembra in gran parte irrisolto. – GTF

2

Questo avviene nei casi in cui è stato installato utilizzando node_modulesnode a qualche versione, e poi di passare a iojs utilizzando nvm install iojs e cercando di eseguire l'installazione node_modules con npm. Non è probabile che questo sia il tuo problema, ma spero che chiunque altro googling possa provare e risolvere il problema.

nvm install iojs 
rm -rf node_modules 
npm install 

poi eseguire qualsiasi cosa si sta cercando di correre, di solito qualcosa come npm run start.

+0

Hai ragione che questo non era il mio problema, avevo già provato a ricostruire i miei moduli di nodo. Fortunatamente è stato corretto in alcune delle funzioni di Jest. – GTF

+0

ragazzi, segnalo come risposta –

Problemi correlati