RequireJS和QUnit基础知识中的单元测试

时间:2011-11-21 10:09:18

标签: javascript unit-testing testing qunit requirejs

我只是想在Javascript和RequireJS中进行单元测试。我正在构建一个Web应用程序,显然只希望在开发中运行测试而不是生产构建。

问题:

  1. 您是否只是想测试,或者您是否正在运行JS测试 在开发时每个页面加载?
  2. 如果只按要求进行测试     那么如何触发测试运行?查询字符串(例如     ?testing = true)或类似的东西?
  3. 我只需要了解人们如何进行开发测试。我在前端使用BackboneJS,RequireJS和jQuery,并在后端使用NodeJS / ExpressJS服务器。

3 个答案:

答案 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(它也在构建服务器上运行)。我没有在页面加载上测试任何东西,我只使用非压缩版本的脚本。 我没有任何集成测试解决方案。

相关问题