我应该为一个简单的 HTML5 + jQuery 应用程序使用啥 JavaScript UI 测试框架?
Posted
技术标签:
【中文标题】我应该为一个简单的 HTML5 + jQuery 应用程序使用啥 JavaScript UI 测试框架?【英文标题】:What JavaScript UI testing framework should I use for a simple HTML5 + jQuery app?我应该为一个简单的 HTML5 + jQuery 应用程序使用什么 JavaScript UI 测试框架? 【发布时间】:2010-12-19 17:50:40 【问题描述】:我将在业余时间编写一个简单的 html5 + javascript (jQuery) 应用程序,以跟上最新的网络技术(在工作中它是更高级的 C# 后端东西)。
我想以过去十年左右的方式进行开发,即 TDD 风格。
作为 HTML/JavaScript 中的 TDD/BDD/AcceptanceTDD 世界的新手,我的问题是:是否有一个很棒的框架或类似的框架可以在浏览器中针对网页编写测试(开箱即用的支持许多浏览器是一个明确的优势)?
我想使用 JavaScript 的原因有两个。 1. 我想学习更多 JavaScript,以及 2. 我想在测试中使用与开发相同的语言。
否则,我可以简单地使用我的 C# 技能并使用 Selenium、WatiN 或类似的框架。
我找到了 Jasmine、QUnit 和一个本土解决方案 using jQuery at MSDN,但不了解流程和复杂性,因此非常欢迎推荐和第一手经验。
【问题讨论】:
【参考方案1】:JS Test Driver 是我正在阅读的 O'Reilly 的 Javascript TDD 书籍推荐的框架。我实际上还没有机会玩太多,但是:
写了一本关于 JS 测试的书的家伙推荐它 它有一个非常好的功能集(跨多个浏览器运行的自动测试是关键) 它来自 Google(爱不释手,他们有很多聪明的 JS 人在那里工作)所以我认为至少值得一试。
【讨论】:
+1 目前正在使用 JS 测试驱动程序,它的效果很好,但是设置起来有点麻烦,我只推荐在有资源的项目中使用它(不适用于单人团队)。【参考方案2】:在这一点上,我推荐Jasmine。我已经在几个项目中成功使用了它。我并没有真正遇到太多令人沮丧的情况,即我无法完成某些事情(与其他工具不同)。它可以设置为不同的配置,具体取决于您的偏好——它可以像在浏览器中打开页面一样简单,也可以动态地“提供”。
有几十种通用工具——到目前为止——还没有明显的赢家。我已经尝试了很多,而且——正如 John Resig 所指出的——创建一个简单的测试框架并没有那么复杂。但是添加一些工具以使其方便是很重要的。 Jasmine 是我用过最全的一款,但并不臃肿。
重要注意事项:
设置:不要采用开箱即用的工具 风格:在其他测试工具的上下文中使用对您有意义的工具。例如,如果您使用 BDD 工具,请查找 BDD Javascript 框架。这可能是框架中最大的差异——不妨选择一个具有您喜欢的语法的框架。 跨浏览器:测试应该跨浏览器工作 自动化:您应该能够编写脚本在一个或多个浏览器中运行测试 测试基于时间的代码——如果您的 Javascript 具有与时钟相关的行为(如在动画中),那么拥有一个可以促进这一点的测试框架非常好 模拟:jasmine 有一个很好的模拟支持,真的很有帮助您确实不需要需要将 Selenium 用于简单的单元测试——它使配置复杂化,并且是一个比简单的单元测试框架更难的编程模型。
【讨论】:
【参考方案3】:我为此苦苦挣扎。我认为 Selenium 是你最好的选择,特别是因为它听起来你以前用过它。 JS 的其他内容主要是单元测试。
为了不削弱 machineghost 的回答,JS 测试驱动程序适用于单元测试。
【讨论】:
【参考方案4】:我最终使用了 QUnit,因为我发现只需在 <iframe>
中插入 PUT(被测页面)并使用 jQuery 从单元测试中访问它非常简单。
这样,除了浏览器本身(逻辑 100% 驻留在客户端)和任何文本编辑器之外,我不需要任何其他外部依赖项。
【讨论】:
让我推荐zombieJS作为一个类似于selenium但基于nodejs和javascript的框架。 +1 很棒的解决方案,虽然可能有更多涉及的解决方案提供花里胡哨的功能,包括 CI 测试,但这将有助于在 90% 的项目中快速启动和运行单元测试。【参考方案5】:Turboframework 使用 javascript、jasmine、selenium 并使用 node 运行。 您可以在 10 分钟内创建一个测试项目并运行网络自动化测试。为避免重复已有的文档,这里是快速入门指南的链接:
https://turboframework.org/en/blog/2021-03-03/automate-your-web-application-tests-in-less-than-ten-minutes
【讨论】:
以上是关于我应该为一个简单的 HTML5 + jQuery 应用程序使用啥 JavaScript UI 测试框架?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Jquery 播放/暂停 Flash 视频(不是 html5 <video>)