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

dof*_*ffm 128 testing frameworks node.js

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

显然,在浏览器中运行的能力将是一个很大的好处,但我主要对Node.js感兴趣.具有严重异步倾斜的东西会很棒.

Alf*_*red 67

更新:

在我看来,摩卡是最好的.


这些框架的经验是什么?

我玩的是expresso,这是一个非常酷的测试框架,它也有测试覆盖率.它由TJ Holowaychuk创建,它也是Express.js的创建者(在Node.js和Connect上构建的疯狂快速(和小型)服务器端JavaScript Web开发框架.).我最近看到他还有一个名为should.js的酷库,它可以与Expresso一起使用,以获得更好的测试体验.

显然,在浏览器中运行的能力将是一个很大的好处

我不相信它可以在浏览器中运行,但我也不明白为什么你想在浏览器中运行它?

但我主要对Node.js感兴趣 具有严重异步倾斜的东西会很棒.

引用来自expresso:

传递给每个回调的参数是beforeExit,它通常用于断言已经调用了回调.

您可以使用beforeExit来测试异步函数.


提示:GitHub上关注TJ Holowaychuk,因为他创建了非常好的开源代码.

  • 你说你现在更喜欢摩卡,但为什么呢? (4认同)
  • 我目前正在尝试誓言(http://vowsjs.org/),这对我来说更容易理解. (3认同)

pan*_*sru 40

我使用易于使用异步BDD框架(行为驱动开发)的VowsJS并完成工作.

从我最近看到的是许多人选择测试他们的NPM模块,所以我相信到目前为止它是最好用的.

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

您还可以在此处查看JavaScript测试框架列表

很少有可以帮助你编写更好代码的库是:

Atlassian还提供Bamboo CI Server,它可以自动构建和测试.它是Apache/Tomcat的一个软件包(sux因为它使用Java而且非常繁重)也不是免费的,但它有一个10美元入门许可证,所以我认为它是可以承受的.它是迄今为止我发现的所有CI服务器中最具特色的,它支持所有支持xUnit的单元测试,这意味着您可以使用Bamboo运行任何语言的构建/测试.

使用NodeJS的CI的另一个选择是Travis,许多人将其用于他们的开源项目,因为它表示为开源社区提供托管的持续集成服务.

还有针对节点JS项目的持续集成的Google小组讨论主题.

  • 人们考虑使用Vows的说明:自2012年以来尚未更新 (5认同)

Chr*_*nes 14

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

请务必仔细阅读指导文档,但一旦掌握了它,它就会灵活,强大,并产生美观,干净的结果.

更新:我也鼓励人们看看应该为他们的断言.它允许非常灵活,非常易读的断言,并且与Expresso和Vows兼容,也可能与大多数其他测试框架兼容.

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

更新2015年1月7日:为了它的价值,我已经从Vows转为Mocha,从Should转为Chai.Mocha现在对使用promises的异步测试提供了更好的支持,而Chai允许expect为那些不喜欢修改对象原型的人提供几个灵活的断言选项,包括api.


Mar*_*k B 6

我开始使用Jasmine进行JavaScript测试,因为它很小,可以在浏览器和节点中运行.它还有一个非常可靠的报告和匹配器API,因此将来很容易与其他工具集成.拥有一个buildin模拟框架也很有用,因为当我在浏览器中使用qunit进行TDD时,它通常是我要添加的第一件事.