gpt4 book ai didi

html - 如何自动化 Windows 8 HTML5 应用程序的单元测试?

转载 作者:太空狗 更新时间:2023-10-29 14:08:41 25 4
gpt4 key购买 nike

我正在编写 Windows 8 应用程序,并为其编写单元测试。如何在 Windows 8 环境中以自动化方式运行它们?

如果我编写 super 简单的 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 来构建类似的东西?

最佳答案

目前没有办法以 headless 方式运行 Win8/WinJS 测试套件。如果不运行完整的 WinJS 应用程序,WinJS 应用程序所需的运行时无法独立存在。

运行测试的最佳方式 IME 是在您的解决方案中创建一个单独的 WinJS 项目来运行您的测试。

Christopher Bennage 有一篇描述基本设置的博客文章,此处:http://dev.bennage.com/blog/2012/08/15/unit-testing-winjs/

我还有几篇博文更进一步:

http://lostechies.com/derickbailey/category/winjs/

http://lostechies.com/derickbailey/2012/08/17/asynchronous-unit-tests-with-mocha-promises-and-winjs/

http://lostechies.com/derickbailey/2012/08/21/a-winjs-specrunner-automating-script-tag-insertion-for-unit-tests/

如果您不喜欢为测试运行单独项目的想法,或者如果您想要 QUnit 而不是 Jasmine 或 Mocha,请查看 QUnit-Metro:http://qunitmetro.github.com/QUnitMetro/ - 它与您的真实应用一起在项目内运行,并在开发模式下为您提供一个上下文菜单,以便为您所在的页面运行测试。

我不喜欢 QUnit 或 QUnit-Metro 在页面中的工作方式。但如果您不喜欢单独的项目,您可能会发现它很合适。

希望对您有所帮助。

关于html - 如何自动化 Windows 8 HTML5 应用程序的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com