如何在所有浏览器中运行单元测试?

ajs*_*sie 48 javascript testing tdd bdd selenium

我从未使用过Selenium,但我想这是为了模拟所有浏览器中的用户交互.

这就像集成测试.

但是,如何以自动方式在所有浏览器上测试js库/框架(单元测试)?

Ole*_*gas 28

对于单元测试,您可以尝试http://code.google.com/p/js-test-driver/

JsTestDriver包含一个JAR文件,其中包含入门所需的所有内容.有关命令行选项的深入讨论,请参阅GettingStarted.

以下概述了JsTestDriver在运行时的工作原理......

  • 甚至在您的机器上,甚至在本地网络中的任何其他机器上也是如此.您可以将不同OS的不同浏览器连接到js-test-driver服务器,并在所有浏览器中运行测试. (2认同)

9ik*_*han 13

你可以看看TestSwarm:

我正在研究的项目:TestSwarm ......

它的结构非常简单.这是一个愚蠢的JavaScript客户端,不断地ping中央服务器,寻找更多的测试运行.服务器收集测试套件并将它们发送给相应的客户端.

收集所有测试套件.例如,1"commit"可以有10个与之关联的测试套件(并分发给选择的浏览器)......

这种结构的好处是它能够以容错的方式工作.客户可以来去匆匆.在任何给定时间可能没有连接Firefox 2,在另一个时间可能有30.作业排队并在负载需要时进行分配.此外,客户端足够简单,能够在移动设备上运行(同时完全与测试框架无关)...

  • 上面的链接被打破了.这是正确的链接:http://swarm.jquery.org/然而,根据他们的Wiki,这仍然是Alpha产品:**注意:TestSwarm目前处于Alpha状态.在alpha测试期间可能会出现严重问题,导致数据丢失,客户端断开连接以及其他不理想的影响.参与alpha测试时请记住这一点.** (2认同)

Tne*_*nem 7

正如前一篇文章中提到的那样,您可以使用js-test-driver.它专门用于跨多个浏览器的JavaScript单元测试,正是您想要的.我搞砸了它,它非常好.我没有做过任何严肃的商业测试.


xav*_*m02 7

最好的一个imo来自YUI:http://developer.yahoo.com/yui/3/test/ 但是在每个浏览器中进行单元测试都很难...大多数人只是在开发过程中用它测试只需使用node.js稍后进行测试,以防它们破坏了某些东西.


man*_*lds 6

对于单元测试,您应该查看不加载浏览器进行测试的解决方案.

你可以看看像RhinoUnit这样的东西 - http://code.google.com/p/rhinounit

另请参阅Dojo Object Harness(DOH)单元测试框架http://dojotoolkit.org/reference-guide/util/doh.html

看看这里的类似问题,它可以让你了解如何使用TDD js - 用于TDD的JavaScript单元测试工具


nra*_*itz 6

它不再被主动维护,但我仍然对JSUnit进行Javascript单元测试感到满意:https://github.com/pivotal/jsunit

它包括可以在浏览器中运行的HTML/Javascript框架,以及可以从ant调用的基于java的测试运行器.


anu*_*ava 5

要并行测试多个浏览器,您可以使用Selenium Grid.请看一下:http://selenium-grid.seleniumhq.org/step_by_step_installation_instructions_for_windows.html,了解如何使用它的分步说明.


knb*_*knb 5

到目前为止我还没有使用它,它仍然处于测试阶段,但是FuncUnit宣称自己是"基于qUnit,Selenium和jQuery的功能测试套件".

还有一个解释它是如何工作的信息图

也许这是你想要的东西?在GitHub的回购似乎是相当活跃.