4

我正在尝试从 dojo-1.3.2 运行 DOH 以从命令行测试简单的 Javascript 函数。但是,我似乎无法运行任何东西,而且网络似乎没有 DOH 命令行文档。

理想情况下,我想要的结构是:

测试驻留:C:\myproject\tests\

Dojo 驻留:C:\dojo-1.3.2\util\doh

截至目前,我已经在 ..\doh\tests 中进行了一个简单的测试

我尝试在 ..\doh 目录中运行:

java -jar ..\shrinksafe\js.jar runner.js testModule=tests.module

每次我得到:

js:未捕获的 JavaScript 运行时异常:ReferenceError:“窗口”未定义。发生异常:错误:无法加载“tests.module”;最后尝试 'tests/module.js' 0 个测试在 0 个组中运行

有什么我应该做但我遗漏的事情吗?我也尝试过使用 dojoUrl= 指向 dojo.js 文件,但仍然是同样的错误。

据我所知,我的测试在任何地方都没有使用窗口。我有三个文件:

测试/module.js

dojo.provide("tests.module");
dojo.require("tests.functions.functions");

测试/函数/functions.js

dojo.provide("tests.functions.functions");
dojo.require("tests.demoFunctions");

doh.register("tests.functions.functions", [
    function test_alwaysTrue(){
        doh.assertTrue(tests.demoFunctions.alwaysTrue());
    }
]);

测试/demoFunctions.js

    dojo.provide("tests.demoFunctions");

tests.demoFunctions.alwaysTrue = function(){
    return true;
};

我还尝试重组目录以使 ../dojo-1.3.2/ 包含测试。从命令提示符运行与上述相同的命令同样失败。目录结构:

/dojo-1.3.2

   /dojo
   /tests
   ...
   /util

      /shrinksafe
      ...
      /doh
4

4 回答 4

1

不确定“窗口”来自何处,但我认为 doh 在 Dojo 目录之外的测试中无法正常工作。如果您将 util/doh 复制到测试目录的对等位置,它是否有效?

于 2010-01-21T19:23:44.973 回答
1

如果您希望您的 testFolder 存储在默认的 dojo-release-xxx\ 目录之外。将以下内容添加到您的命令中: registerModulePath=tests,../myproject/tests

您可能必须正确编辑../才能找到您的实际目录结构。

于 2011-06-29T06:35:36.783 回答
0

这里有一个补丁:http: //bugs.dojotoolkit.org/ticket/10511,它允许在 dojo 根目录之外运行命令行测试,但无论如何,在 dojo-1.6.1 中似乎没有应用它.

于 2011-11-16T17:21:40.523 回答
0

可以在命令行上运行 DOH 测试,包括在 dojo 源代码树之外的测试。创建一个这样的配置文件,说明您的代码模块相对于 dojo/util/doh 位置的位置:

require({
    paths: {
        "org/myorg" : "../../../mycode/org/myorg",
        "com/mycom" : "../../../x/com/mycom"
    }
});

并将其命名为 config.js。打开命令窗口并 cd 进入包含“dijit”、“dojo”、“dojox”和“util”目录的目录。运行此命令:

java -jar util/shrinksafe/js.jar dojo/dojo.js baseUrl=file:///full/path/to/dojo/dojo load=file://full/path/to/config.js load=doh test=com/mycom/tests

完整的答案在这里:http ://dojotoolkit.org/reference-guide/1.9/util/doh.html

这里有更详细的解释:http ://www.artificialworlds.net/blog/2012/10/09/running-dojo-doh-unit-tests-on-the-command-line-with-rhino/

于 2014-02-10T14:44:53.067 回答