使用 Node.js 的最佳测试框架是什么?

我已经看过了 https://github.com/ry/node/wiki/modules#testing中相当长的测试框架列表。这些框架的经验是什么?

显然,能够在浏览器中运行将是一个很大的奖励,但我主要对 Node.js 感兴趣。有一个严重的异步倾斜的东西将是伟大的。

95904 次浏览

更新:

在我看来,摩卡咖啡是最好的。


这些框架的经验是什么?

我使用的是 浓咖啡,这是一个非常酷的测试框架,它也具有测试覆盖率。它是由 TJ Holowaychuk 创建的,他也是 快递(基于 Node.js 和 Connect 的服务器端 JavaScript web 开发框架)的创建者。我最近看到他还有一个很酷的库,名为 应该 JS,可以与 Expresso 一起使用,获得更好的测试体验。

显然,在 浏览器将是一个巨大的红利

我不相信它能在浏览器里运行但我也不明白你为什么想在浏览器里运行它?

但我主要对 Node.js 感兴趣。 一些非常异步的东西 倾斜就好了。

特浓咖啡里的台词:

传递给每个回调的参数 是 before Exit,通常使用 断言回调已被 调用。

可以使用 before Exit 测试异步函数。


提示: GitHub上跟随 TJ · 霍洛韦查克,因为他创建了非常好的开源代码。

我一直在使用 结束,它处理异步函数的能力相当简单。

有一个不错的演练,应该让您准备好去与节点单元 在他的博客上

[由于 blogpost-setUp(callback)tearDown(callback)都接受一个回调作为参数,在完成安装/拆卸时需要调用该参数,因此 注:的 API 发生了改变。]

我已经开始在 JavaScript 测试中使用 茉莉,因为它很小,可以在浏览器和节点中运行。它还有一个非常可靠的报告和匹配 API,所以将来很容易与其他工具集成。拥有一个内建模拟框架也很有用,因为它通常是我在浏览器中使用 qunit 进行 TDD 时首先要添加的内容之一。

基于提问者上面的评论,我尝试了 誓言,它解决了我在进行异步测试时遇到的许多问题。它混合串行和并行测试的能力非常棒。

一定要仔细阅读指导文档,但是一旦你掌握了诀窍,它就是灵活的、强大的,并且能产生漂亮的、干净的结果。

更新: 我还鼓励人们查看 应该以获得他们的资产。它支持非常灵活、非常易读的断言,并且兼容 Expresso 和 Vows,可能还兼容大多数其他测试框架。

(我把这个作为一个单独的答案发布,以防人们没有注意到对阿尔弗雷德答案的评论。)

更新1/7/2015: 不管怎样,我已经从“誓言”换成了“摩卡”,从“应该”换成了“印度茶”。Mocha 现在对使用承诺的异步测试有了更好的支持,而且 Chai 允许一些灵活的断言选项,包括 expect api,用于那些不喜欢修改对象原型的人。

我使用 誓言,它很容易使用异步 BDD 框架(行为驱动开发)并完成工作。

从我最近看到的情况来看,这是许多人选择测试他们的 NPM 模块,所以我相信到目前为止,它是最好的使用之一。

一些可以与 NodeJS 一起使用的流行测试框架也包括:

您还可以看到 JavaScript 测试框架 给你的列表

能够帮助您编写更好代码的库有:

也有 竹信息服务器阿特拉斯人它自动构建和测试。这是一个包的 阿帕奇/Tomcat (因为它使用 Java,所以很重)也不是免费的,但它有一个 启动许可证,费用为10美元,所以我相信它是负担得起的。它是迄今为止我发现的所有 CI 服务器中功能最强大的,并且它支持所有支持 XUnit的单元测试,这意味着您可以使用竹子运行任何语言的构建/测试。

NodeJS 的 CI 的另一个选择是 特拉维斯,很多人在他们的开源项目中使用它,正如它所说的 为开源社区提供的托管持续集成服务。

还有一个与 节点 JS 项目的持续集成主题谷歌小组讨论。

如果您想要一个真正的 BDD 框架,那么可以考虑 没错。它集成了摩卡,茉莉,节点单元,qunit,僵尸和 casperjs,以支持功能文件,例如。

   Scenario: provides the version of all services
given service x is running
and service y is running
when I request the service versions
then service x should be version 0.0.1
and service y should be version 0.0.2