我最近将 RequireJS 添加到我的项目中,现在重写了我的 JSTestDriver 测试用例,使它们被 requireJS 包装:
//this does run when running from within WebStorm
require(['backbone', 'models/ParametersModel'],function (backbone, params) {
TestCase("test aTestCaseInside", {
setUp: function () {
assertNotUndefined('backbone is undefined', backbone);
assertNotUndefined('params is undefined', params);
this.p = new params();
},
//todo: without the backbone dependency everything runs as expected!
testClass: function () {
console.log("running a test INSIDE the requireJS context");
assertEquals("", this.p.getValue(), 'a value from param')
}
});
});
当我通过 JetBrain 的 Webstorm IDE 的 JSTD 插件运行此测试时,它运行良好。
但是我也希望能够从命令行运行JSTestDriver。但是,这不起作用。如果我执行此命令:
java -jar testvendorJsTestDriver1.3.5jarJsTestDriver.jar --config jsTestDriver.jstd --browser "C:Program Files (x86)GoogleChromeApplicationchrome.exe" --port 14999 --tests all --captureConsole --runnerMode PROFILE
我得到这个输出:
feb 13, 2014 10:56:41 AM com.google.jstestdriver.server.handlers.pages.SlavePageRequest createCaptureUrl
SEVERE: Invalid/No runner type specified: null falling back to BROWSER
Total 0 tests (Passed: 0; Fails: 0; Errors: 0) (0,00 ms)
feb 13, 2014 10:56:41 AM com.google.jstestdriver.ActionRunner runActions
INFO:
在浏览器的控制台中,我得到:
Failed to load resource http://127.0.0.1:14999/query/1392285643189
Failed to load resource http://127.0.0.1:14999/test/vendor/backbone/1.0.0/js/backbone.js
命令行上的命令是正确的,因为当我在require函数之外创建TestCase时,它确实表明测试已经运行并通过!
如何使用 Requiere JS 配置 JSTD 以便能够从命令行运行测试?
谢谢。
使用 AMD 插件进行 RequireJS。以下是一些示例:
- 使用 JSTestDriver 和 RequireJS 进行主干测试
- 如何设置 RequireJS + Jasmine + JSTestDriver
- JSTestDriver + QUnit + RequireJS
- 茉莉花 + RequireJS + JSTD 脚手架