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

发布于 2024-12-17 03:05:04 字数 333 浏览 1 评论 0原文

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

问题

  1. 你只是在需要的时候进行测试,还是正在运行 JS 测试 在开发时每个页面加载?
  2. 如果仅按需进行测试 那么如何触发测试运行呢?查询字符串(例如 ?testing=true)或类似的东西?

我只需要了解人们如何在开发中进行测试。我在前端使用 BackboneJS、RequireJS 和 jQuery,在后端使用 NodeJS/ExpressJS 服务器。

I am just trying to get my head round unit testing in Javascript and RequireJS. I am building a web-app and obviously only want to have tests run in development not production builds.

Questions:

  1. Do you just test when you want to, or do you have JS tests running
    on every page load when in development?
  2. If tests are only on demand
    then how do you trigger your tests to run? Query strings (eg.
    ?testing=true) or something like that?

I just need an idea of how people go about testing in development. I am using BackboneJS, RequireJS and jQuery on the front end with a NodeJS/ExpressJS server on the backend.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我很OK 2024-12-24 03:05:04

对于工作中的 Backbone 项目,我们有一个 Maven 构建流程,该流程通过 jsTestDriver 运行自动化 JavaScript 测试,并使用 Sonar 读取结果。我通常手动运行测试(使用“mvn test”),但例如,每次保存文件时我都可以轻松地告诉 maven。我写了一篇文章,展示了如何将 QUnit、Requirejs 和代码覆盖率与独立于 Maven 的 JSTD 集成:js-test-driver+qunit+coverage+requirejs。它还包含 QUnitAdapter 的链接,该链接比 jsTestDriver 站点上的 QUnitAdapter 更新且更先进。当我设法写出如何让 jsTestDriver 与 Maven 和 Sonar 一起工作时,我会更新这篇文章。希望有帮助。

For a Backbone project at work we have a maven build process that runs our automated javascript tests through jsTestDriver, and we read the results with Sonar. I usually run the tests manually (with 'mvn test'), but I could easily tell maven every time I save a file, for example. I wrote a post that shows how to integrate QUnit, Requirejs, and code coverage with JSTD that is independent of Maven: js-test-driver+qunit+coverage+requirejs. It also contains links to a QUnitAdapter that is way more up-to-date and developed than the one on the jsTestDriver site. I'll update this post when I manage to write about how I got jsTestDriver working with Maven and Sonar. Hope it helps.

北斗星光 2024-12-24 03:05:04

Grunt 是一种流行的 JS 构建工具。有一种叫做 grunt-watch 的东西可以监视某些文件的更改,并相应地执行任务。您可以在每次保存时轻松运行单元测试。

通常端到端测试需要更长的时间,我们为此使用 CI。我看过一个关于 Meteor TDD 的演示,它在每次保存后都会进行端到端测试。

有很多端到端的测试框架,它们可以使用像 grunt 这样的构建工具在像 phantom js 这样的无头浏览器中运行。某些框架打开实际的浏览器来运行测试,但通过命令行运行并使用 XML 报告结果。

如果您对组件进行了足够的分解,则测试的范围可能足够小,可以在每次保存时运行。

Grunt is a popular JS build tool. There's something called grunt-watch that can monitor certain files for change, and execute tasks accordingly. You could easily run unit tests with something like this on every save.

Usually end-to-end tests take longer, and we use the CI for that. I've seen a presentation on Meteor TDD that does end-to-end tests after every save though.

There are many end-to-end test frameworks, and they can run in a headless browser like phantom js using a build tool like grunt. Some frameworks open an actual browser to run the tests, but run via command line and report results using XML.

If you break out your components enough, the tests could have a small enough scope to run on each save.

帅气称霸 2024-12-24 03:05:04

对于一些核心代码,我在构建服务器上使用 JsUnit + Rhino。对于更复杂的位(通常是接口),我使用selenium(它也在构建服务器上运行)。我不对页面加载进行任何测试,我只使用脚本的未压缩版本。
我没有任何集成测试的解决方案。

For some core code I use JsUnit + Rhino on build server. For more complex bits (usually interface) I use selenium (it also runs on build server). I don't test anything on page load, I only use not-compressed versions of scripts.
I don't any solution for integration tests.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文