我正在编写一个 Windows 8 应用程序,并为它编写单元测试。如何在 Windows 8 环境中以自动化方式运行它们?
如果我编写超级简单的 JavaScript 文件,不依赖于 Windows 8 环境或 DOM,我可以使用 Node.js 从命令行对它们进行单元测试。这非常快(不到一秒)。
如果我需要涉及 DOM,并且我将 DOM 的使用保持在不太新的功能上,我可以在 Node.js 中使用 jsdom 并获得相同的设置和相同的速度。
但是 jsdom 是不完整的,而且我经常想使用基本的 Windows 8 功能,如 WinJS 基础库(例如WinJS.Promise
)或Windows.*
枚举。理想情况下,我应该在与我的应用程序实际运行时相同的 JS 引擎和 DOM 环境中进行测试。
因此,理想情况下,我需要一个测试运行程序:一个轻量级的 Windows 8 HTML5 容器,它可以使用真实的 DOM 运行一些单元测试,并可以访问 WinJS 和 Windows 运行时 API。为了集成到构建过程中,我还需要能够将结果报告回命令行(stdout、stderr)并根据成功或失败更改测试运行器的返回代码。它应该是完全自动化的,可以在后台运行,而且速度非常快(不到 10 秒)。
我知道 WebKit 有这样的工具,例如PhantomJS。Windows 运行时 HTML5 环境是否存在这种情况?如果没有,我应该研究哪些 API 来构建类似的东西?