Node.jsunit testing

目前有没有好的node.js(服务器端js)unit testing框架? 我正在寻找比所提供的Assert模块更深的东西。

我结束了使用节点单元 ,我真的很高兴。

我最初使用的是Expresso,但它并行运行testing的事实引起了一些问题。 (例如,在这种情况下使用数据库设备不能很好地工作)。

我也在寻找一个体面的节点testing框架,并find了摩卡 。 它是Expresso的正式inheritance者,似乎非常成熟。

它允许插入不同的断言库,它提供代码覆盖和其他事情的记者(你可以插入自己的)。 它可以运行同步或asynchronous,它有一个简洁的API。

我会试一试,然后回报

编辑:

在为其他项目投入了大量时间之后,我终于回到了一个Javascript项目,并有时间与摩卡玩耍。 我可以认真地推荐使用它。 testing阅读非常好,与gulp集成非常好,testing运行速度非常快。 我能够在半天左右(大部分时间花在了解如何使用浏览器)上设置自动独立以及浏览器内(browserify)testing运行和相应的代码覆盖率报告。 对我来说,摩卡看起来是一个testing框架的非常好的select。

更新:

我仍然非常相信摩卡。 与chai集成允许插入不同的断言样式。 你可以在这个github项目中签出一个工作设置。 我现在正在使用它与业力,整合代码覆盖率报告,自动观察者和与IntelliJ良好的集成

就我个人而言,我坚持使用Expresso ,但是那里有一堆不同的框架,可以适应大多数的testing风格。

Joyent有一个广泛的名单 ; 给一个去。

我个人只使用断言模块,但也发现自己想要更多。 我已经浏览了许多节点模块,stream行的unit testing框架是节点单元 ( node-unit) ,应该(它是由Expresso的同一个人制作的(可能是更新后的名称)

誓言也看起来很有希望。

我已经设置了摩卡 – 这里有一个很好的教程 – http://brianstoner.com/blog/testing-in-nodejs-with-mocha/

vows是一个坚实的Node.jsunit testing库,但是语法很单调。

我写了一个名为vows-fluent的简单抽象,它使API可链接。

而且我写了另外一个抽象,[vows-is],它是build立在誓言之上的,stream利并且暴露了一个BDD风格的语法。

一个例子是

 var is = require("vows-is"); is.suite("testing is fun").batch() .context("is testing fun?") .topic.is("yes") .vow.it.should.equal("yes") .suite().run({ reporter: is.reporter }); 

更多的例子

我认为在各种可用的testing框架中, 摩卡是最新的,也是非常简单的。 这是一个关于如何使用它的奇妙教程: http : //thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/

如果您熟悉QUnit ,则可以使用node-qunit ,它是QUnit现有框架的一种节点包装。

最初是为node.js制作的, deadunit是一个用于node.js和浏览器的javascriptunit testing库。 它的一些独特的属性:

  • 简单的学习曲线
  • 可以在命令行(彩色或纯文本)或html上输出testing结果
  • 它打印出你的断言的实际代码行,所以即使你不花很多时间写testing评论,你的输出也是有意义的
  • 它有一个简单的count断言,使处理预期的exception和asynchronous断言很容易
  • 它打印出exception任何附加的数据
  • 它会让你知道,如果你的代码挂起(你不想要的,但通常不被注意)
  • 使用事件驱动的API可以在networking上以任何方式stream式传输testing结果。
  • 支持使用节点光纤进行testing

我刚刚上传了一个项目,我正在用业力和Jasmine: narmaunit testingnodejs 。 你的节点模块被加载到一个nodewebkit浏览器中,所以你可以执行节点模块,并在同一个堆中使用类似jQuery的库。

test-studio是一个npm包,它为unit testing提供了一个function强大的基于web的前端。 它支持执行单个或多组testing以及将节点检查器逐步进行单个testing。 目前它支持摩卡,更多的框架将在未来的需求支持。

在这里阅读更多关于它。

免责声明:我是作者。