我需要为qUnit测试套件提供许多不同的整页DOM样本

我有一小部分要测试的Javascript,但它在整个页面上运行,例如,通过编号ID“#t34”查找元素。 我需要创建一些不同的页面来测试不同的可能配置。 我看到我可以使用qunit-fixture为要访问的测试创建一个DOM树,但每个页面配置需要是一个完整的页面,因为它将按id找到元素。

各种qUnit教程似乎专注于纯Javascript函数执行简单算术的简单示例。 我需要帮助了解如何使用许多不同的文件构建一个真正的测试套件。

更新了更多详细信息:我是coverage代码覆盖工具coverage.py的所有者。 它会生成HTML报告。 这些报告上有jQuery,可以添加一些交互性。 我正在添加更多,并希望自动化测试。 HTML看起来像这样 。 没有涉及服务器,这些只是写入本地目录的文件,因此没有机会使用ajax。 我想针对许多不同的页面配置运行我的测试,主要是针对红色和绿色代码块的边缘情况。

因为我的代码按编号访问源代码行为$("#t123") (例如),所以我在同一个DOM中不能有多个HTML的“页面”,因为ID会发生冲突。 如何针对不同的HTML页面运行qUnit?

#qunit-fixture由QUnit自动重置,这意味着您可以使用每个测试使用的标记填充它,或者将其留空并让每个测试填充它以利用自动rest。 或者只使用每次测试后单独重置的标记。

您可以使用模块方法重构每次测试设置和拆解: http : //docs.jquery.com/QUnit/module

在这种情况下,听起来好的选择是为每个测试使用(同步)ajax请求,将所需的页面标记加载到#qunit-fixture元素中。 这样您只需要自定义设置,因为QUnit将在之后重置。

即使您只处理文件系统中的本地文件,只要它们与testsuite文件位于同一目录中,您就应该能够通过ajax加载它们。

如果没有,它很容易让本地服务器运行,例如通过该目录中的“打开http:// localhost:8080 / && python -m SimpleHTTPServer 8080”。

为了测试整页和DOM,我会使用像Selenium这样的东西http://seleniumhq.org/由于你对JS测试有一定的了解,你也可以考虑http://www.phantomjs.org/和http:// zombie.labnotes.org/

通过这些,您基本上可以使用node.js服务器来加载页面,您可以从node.js命令行或通过脚本完全访问DOM。 可以把它想象成命令行上的firebug脚本(或者,一个firebug插件可以做同样的事情)。 您可以执行断言以查看您的id’ed元素是否存在,以及切换单击元素等。

(顺便说一句,我也在bocoup:D)