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

Testing Node.js使用的最佳测试框架是什么?,testing,frameworks,node.js,Testing,Frameworks,Node.js,我已经看了一长串的测试框架。这些框架有什么经验 显然,在浏览器中运行的能力将是一个巨大的奖励,但我主要对Node.js感兴趣。带有高度异步倾斜的东西会很棒。更新: 在我看来这是最好的 这些框架有什么经验 我使用了一个非常酷的测试框架,它也有测试覆盖范围。它由TJ Holowaychuk创建,TJ Holowaychuk也是(基于Node.js和Connect构建的速度极快(而且很小)的服务器端JavaScript web开发框架)的创建者。我最近看到他还有一个很酷的库,名为Expresso,可

我已经看了一长串的测试框架。这些框架有什么经验


显然,在浏览器中运行的能力将是一个巨大的奖励,但我主要对Node.js感兴趣。带有高度异步倾斜的东西会很棒。

更新:

在我看来这是最好的


这些框架有什么经验

我使用了一个非常酷的测试框架,它也有测试覆盖范围。它由TJ Holowaychuk创建,TJ Holowaychuk也是(基于Node.js和Connect构建的速度极快(而且很小)的服务器端JavaScript web开发框架)的创建者。我最近看到他还有一个很酷的库,名为Expresso,可以与Expresso一起使用,以获得更好的测试体验

很明显,在这种情况下跑步的能力 浏览器将是一个巨大的奖金

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

但我主要对Node.js感兴趣。 具有高度异步性的东西 倾斜就好了

引自《快报》:

传递给每个回调的参数 在退出之前,通常使用 断言回调已被执行 调用

可以使用beforeExit测试异步函数


提示:请继续,因为他创建了非常好的开放源代码。

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

有一个很好的演练可以让你准备好与nodeunit合作


[注意:自从blogpost以来,API已经发生了变化–
设置(回调)
拆卸(回调)
都将回调作为参数,您需要在安装/拆卸完成时调用回调。]

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

基于上面询问者的评论,我尝试了,它解决了我在异步测试中遇到的许多问题。它混合串行和并行测试的能力令人敬畏

确保你仔细阅读了指导文档,但一旦你掌握了窍门,它就会灵活、强大,并产生良好、干净的结果

更新:我还鼓励人们检查他们的资产。它允许非常灵活、可读性很强的断言,并且与Expresso和Vows兼容,可能还与大多数其他测试框架兼容

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

2015年1月7日更新:不管它值多少钱,我已经从“誓言”改为“摩卡”,从“应该”改为“柴”。Mocha现在对使用Promissions的异步测试有了更好的支持,Chai为那些不喜欢修改对象原型的人提供了几种灵活的断言选项,包括
expect
api。

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

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

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

  • (不再维持)
您还可以看到JavaScript测试框架的列表

可以帮助您编写更好代码的LIB还有:

  • 监视js文件并使用
  • 小型服务器
  • 茉莉花的连续检测
  • 不太清楚,但有一个很好的路线图,所以我一直在关注它
它还可以自动生成和测试。它是一个软件包(sux因为它使用Java,这使得它非常沉重),也不是免费的,但它有一个,所以我相信它是负担得起的。它是迄今为止我发现的所有CI服务器中最具特色的一个,它支持所有支持的单元测试,这意味着您可以使用竹子为任何语言运行构建/测试

使用NodeJS的CI的另一个选择是很多人在他们的开源项目中使用它,正如它所说的开放源码社区的托管持续集成服务


还有一个与主题有关的谷歌组讨论。

如果你想要一个真正的BDD框架,那么不妨考虑一下。它与mocha、jasmine、nodeunit、qunit、zombie和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

感谢您的回复,我尝试了expresso,但发现异步支持不是很直观。(无论如何,对我来说)我目前正在试用vows(),这对我来说更容易理解。vowjs看起来也是一个不错的测试框架。我喜欢expresso的测试覆盖功能。另外,我想知道你有什么不明白的?你说你现在更喜欢摩卡咖啡,但为什么?试试吧。摩卡咖啡什么都有:)。甚至浏览器支持,代码覆盖率。你说得对,摩卡有!考虑到这一点,在expresso中尝试了一些mongoose.js函数测试之后,nodeunit不希望并行运行所有测试并允许安装和拆卸测试,这看起来很有用。想使用Vows的人需要注意:自2012年以来,它一直没有更新过。最新版本:2015年9月,2020年官方网站上的Got bad gateway,可能已经死了?哇,伙计,从那以后已经很多年了,我现在能找到的关于VowJS的所有信息是:但不幸的是,我不能建议你在2020年使用它。它已经过时了,我强烈建议您改为检查Mocha()、Jasmin()和Jest()。
should
tack一个名为
should
t的不可枚举属性