我只是想在Javascript和RequireJS中进行单元测试。我正在构建一个Web应用程序,显然只希望在开发中运行测试而不是生产构建。
问题:
我只需要了解人们如何进行开发测试。我在前端使用BackboneJS,RequireJS和jQuery,并在后端使用NodeJS / ExpressJS服务器。
答案 0 :(得分:1)
对于Backbone项目,我们有一个maven构建过程,通过jsTestDriver运行我们的自动javascript测试,我们用Sonar读取结果。我通常手动运行测试(使用'mvn test'),但是每次我保存文件时我都可以很容易地告诉maven。我写了一篇文章,展示如何将Qunit,Requirejs和代码覆盖与JSTD集成,独立于Maven:js-test-driver+qunit+coverage+requirejs。它还包含指向QUnitAdapter的链接,该链接比jsTestDriver站点上的更新和开发更新。当我设法写下如何让jsTestDriver使用Maven和Sonar时,我会更新这篇文章。希望它有所帮助。
答案 1 :(得分:1)
Grunt是一款流行的JS构建工具。有一种叫做grunt-watch的东西可以监视某些文件的变化,并相应地执行任务。你可以在每次保存时轻松地运行单元测试。
通常端到端测试需要更长时间,我们会使用CI。我看过Meteor TDD的演示文稿,它在每次保存后都会进行端到端测试。
有许多端到端测试框架,它们可以使用像grunt这样的构建工具在像phantom js这样的无头浏览器中运行。一些框架打开一个实际的浏览器来运行测试,但是通过命令行运行并使用XML报告结果。
如果你的组件足够多,那么测试的范围就足够小,可以在每次保存时运行。
答案 2 :(得分:0)
对于某些核心代码,我在构建服务器上使用JsUnit + Rhino。对于更复杂的位(通常是接口),我使用selenium(它也在构建服务器上运行)。我没有在页面加载上测试任何东西,我只使用非压缩版本的脚本。 我没有任何集成测试解决方案。