2015-03-05 4 views
5

Я использую IO.js 1.4.3 и Jest для запуска своих тестовых наборов. Мне нужна более новая версия V8, потому что я использую функции ES6, такие как Promises.Ошибка сегментации Jest (JS) 11 в IO.js 1.4.3 при использовании require()

Если я пытаюсь простейшим тест:

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

он работает (к счастью). Если я включаю, однако, вызов require() (который я должен сделать, чтобы проверить мой собственный код), я получаю:

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

Это происходит независимо от того, какой модуль я включаю, и сделать ли мне вызов jest.dontMock() первый.

На самом деле это не говорит мне очень много сообщений об ошибке qua, и require действительно кажется проблемой. Есть ли какие-либо решения для этого, кроме как вернуться к pre-1.0 node.js?

+0

Можете ли вы сделать пример git repo, чтобы продемонстрировать ошибку? Ошибки «ошибки сегментации» трудно отследить, тем более, что это может происходить по нескольким причинам. – loganfsmyth

+0

Я обнаружил, что эта ошибка, по-видимому, напрямую связана с использованием версии с более высоким узлом. Возвращаясь к v0.10.38, Jest работает, но я действительно не знаю, почему это так. – GTF

ответ

0

Ошибки сегментации почти всегда исходят из собственного кода на C++, поскольку JS не может вызывать такие сбои, если только он не вызывает ошибку V8. Таким образом, я подозреваю, что проблема связана с контекстным модулем, который шутит косвенно зависит от (через jsdom).

Возможно, стоит попробовать взломать версию шутки, которая зависит от последнего jsdom, который больше не имеет зависимости от собственного модуля.

+0

Он начал работать с более поздними версиями IO.js. В этом есть несколько дискуссий по различным вопросам, связанным с Jest, но, похоже, они в основном не решены. – GTF

2

Это происходит в тех случаях, когда вы установили node_modules с помощью node в какой-то версии, а затем переходите на iojs с помощью nvm install iojs и пытаетесь запустить установленную node_modules с npm. Не похоже, что это ваша проблема, но, надеюсь, кто-то другой пойдет по пути, попробует это и исправит.

nvm install iojs 
rm -rf node_modules 
npm install 

то работает то, что вы пытаетесь запустить, как правило, что-то вроде npm run start.

+0

Вы правы, что это не моя проблема, я уже пробовал перестраивать модули узлов. К счастью, это было исправлено в некоторых депрессиях Джест. – GTF

+0

ребята, отметьте это как ответ –