5

我正在使用 IO.js 1.4.3 和 Jest 来运行我的测试套件。我需要更新版本的 V8,因为我正在使用诸如 Promises 之类的 ES6 功能。

如果我尝试最简单的测试:

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()首先调用,都会发生这种情况。

这并没有真正告诉我很多错误消息,而且require确实似乎是问题所在。除了恢复到 1.0 之前的 node.js 之外,还有其他解决方案吗?

4

2 回答 2

2

这种情况发生在您node_modules使用node某个版本安装,然后切换到iojs使用nvm install iojs并尝试运行安装node_modulesnpm. 这不太可能是您的问题,但希望其他任何在谷歌上搜索的人都可以尝试并修复它。

nvm install iojs
rm -rf node_modules
npm install

然后运行你想要运行的任何东西,通常是npm run start.

于 2015-08-29T18:11:13.953 回答
0

分段错误几乎总是来自本机 C++ 代码,因为除非触发 V8 错误,否则 JS 不会导致此类崩溃。因此,我怀疑问题在于 jest 间接依赖的 contextify 本机模块(通过 jsdom)。

可能值得尝试将依赖于最新 jsdom 的 jest 版本组合在一起,该版本不再具有本机模块依赖项。

于 2015-05-13T16:39:38.343 回答