Dom*_*nic 7 html5 windows-8 windows-runtime winjs
我正在编写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来构建类似的东西?
Der*_*ley 10
目前还没有办法以无头的方式运行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/
如果您不喜欢为测试运行单独项目的想法,或者您想要QUnit而不是Jasmine或Mocha,请查看QUnit-Metro:http://qunitmetro.github.com/QUnitMetro/ - 它运行于 - 使用您的真实应用程序进行项目,并在开发模式下为您提供上下文菜单,以便为您所在的页面运行测试.
我不是QUnit的粉丝,也不是QUnit-Metro在页面中工作的方式.但如果您不喜欢单独的项目,您可能会觉得它很合适.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
1844 次 |
| 最近记录: |