使用V8进行Javascript单元测试

Har*_*sad 15 javascript qunit phantomjs sinon

目前,我正在使用PhantomJS在我们的构建服务器上的QUnit和Sinon框架中运行Javascript单元测试.

但是,PhantomJS使用JavaScriptCore和JIT编译器作为其Javascript引擎.相反,我想使用在谷歌浏览器中使用的V8引擎,或在IE中使用的Chakra.我想这样做是因为我想检查代码的平台兼容性.

是否有像PhantomJS这样的流行测试跑步者使用这些引擎?

Spu*_*ley 12

我能想到的最接近的是Zombie.js,这是一个用Javascript编写的无头浏览器,在Node.js下运行.

它不像Phantom那样是一个真正的浏览器,所以你可以用Phantom做一些你无法做到的事情,但是因为它使用了Node.js,它显然确实使用了V8引擎,所以它符合您的标准.

但是,如果您真的想在所有浏览器的各种引擎中进行测试,那么您的另一个选择当然是使用真正的浏览器.您不必拥有可见的UI; 使用像Selenium或Sahi这样的工具,它可以从脚本启动和运行浏览器,并让它在VM中运行; 你甚至不需要看它.它可能没有使用Phantom那么快,但它将是一个真正的测试,这显然是你真正感兴趣的.

[编辑]
值得为这个答案添加一个注释,因为我最近发现了SlimerJS,这是一个开源项目,旨在生成一个使用Gecko引擎的PhantomJS兼容浏览器.同样,这不是问题所要求的,但它本着它的精神; 很高兴有另一种工具可以使跨平台测试变得更容易.