在node中运行浏览器javascript单元测试
Running browser javascript unit tests in node
我有一个项目,我想把测试从rhino转移到nodejs (rhino需要很长时间才能启动和加载envjs)。这是在能够继续前进之前的当前阻塞器:
ExampleSingleton = new function () {
var something = someFunction () {/*Does something*/}
$(window).bind('resize', something);
}();
这个抱怨没有定义窗口-我不知道如何获得我在shell中创建的"窗口"(#!)我编写的/usr/bin/env节点)脚本(见下文,请原谅混乱,因为我已经到了"尝试任何东西"的地步)。
var dom = require("jsdom").jsdom()
var window = global.window = dom.createWindow();
global.jQuery = require("jQuery");
global.$ = global.jQuery;
....
require("path/to/file"); //This is where it breaks, before the tests even start
我也试过读入和求值,但没有多大帮助,当然错误被掩盖了,因为它是一个匿名函数。
我是不是在做不可能的事?或者有一个非常简单的浏览器友好的事情,我可以做得到这个工作?
您是否考虑过使用PhantomJS而不是node?
PhantomJS是一个带JavaScript API的无头WebKit。它有快速和本机支持各种web标准:DOM处理,CSS选择器,JSON, Canvas和SVG。
PhantomJS是快速无头测试的最佳解决方案,站点抓取、页面捕获、SVG渲染、网络监控等等其他用例。
因为它是一个真正的浏览器,你不需要jdom或envjs。使用QUnit, PhantomJS和Powershell进行JavaScript持续测试可能会帮助你开始。
相关文章:
- Javascript单元测试
- Javascript单元测试依赖关系-当依赖对象发生变化时,如何使测试失败
- 将Jasmine JavaScript单元测试与TFS Build CI集成的简单方法
- 没有返回类型的函数的Javascript单元测试
- 在我的Javascript单元测试中,expect(true).toBeTruthy()失败
- Javascript 单元测试和重构(使用 Angular js 框架)
- 如何运行Javascript单元测试
- 什么是 JavaScript 单元测试
- 什么是JavaScript单元测试的代码覆盖率的分支
- 自动化Javascript单元测试..从哪里开始
- Javascript单元测试
- Visual Studio/Build Server的JavaScript单元测试工具-尚未达成共识
- 自定义函数的 JavaScript 单元测试
- Rails 3.1和资产管道的Javascript单元测试
- JavaScript单元测试:Karma、jasmine和bootstrap测试的依赖项
- 如何使用Mocha在Karma中为Javascript单元测试加载HTML固定装置
- 在javascript单元测试中测试单个行
- 配置javascript单元测试和承诺断言
- Gradle exec任务在用Karma运行javascript单元测试时挂起
- 使用V8进行Javascript单元测试