2010-01-21 58 views
4

我試圖從dojo-1.3.2運行DOH以從命令行測試簡單的Javascript函數。然而,我似乎無法運行任何東西,網絡似乎沒有DOH命令行文檔。DOH命令行測試Dojo根以外的JavaScript函數

理想我想的結構是:

測試駐留: C:\ MyProject的\測試\

道場駐留: C:\道場-1.3.2 \ UTIL \ DOH

截至目前我已經把一個簡單的測試,在.. \ DOH \測試

我嘗試運行,而在.. \ DOH目錄:

Java的罐子.. \ ShrinkSafe的\ js.jar runner.js testModule = tests.module

每次我得到:

JS:未捕獲的JavaScript運行時異常:的ReferenceError: 「窗口」 不defin ed。 發生異常:錯誤:無法加載'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 

回答

1

不知道在哪裏的「窗口」是從哪裏來的,但我不認爲衛生署曾使用Dojo目錄之外的測試工作正常。如果您將util/doh複製爲測試目錄的同位體,它會起作用嗎?

+0

/並運行相同的命令「java -jar .. \ shrinksafe \ js.jar runner.js testModule = tests.module」,我仍然遇到同樣的問題。我也嘗試了更新版本的js.jar和dojo-1.4.0 runner.js。沒有比這更好的了。 – faust 2010-01-21 19:31:21

+0

對不起,我已經將/ tests文件夾移動到了util/doh /的一個對等體(這次不是子對象),並且仍然失敗 – faust 2010-01-21 20:07:01

+0

好吧,還有一件事...嘗試重命名您的「測試」目錄和所有測試。 *引用其他東西...我不知道它在哪裏,但我認爲測試。*映射到dojo。*當您使用默認的dojo測試運行runner.js時,它將它們全部引用爲測試。* Dijit而DojoX測試不會這樣做。聽起來像需要清理的東西! – peller 2010-01-21 22:46:26

1

如果您希望將testFolder存儲在默認的dojo-release-x.x.x \目錄之外。 以下內容添加到您的命令: registerModulePath =測試,../MyProject的/測試

您可能需要編輯../正確定位您的實際目錄結構。

+0

registerModulePath現在已被棄用,你現在應該使用類似:paths = myutil,../../mydirectory/myutil – 2012-05-31 04:09:35

0

可以在命令行上運行DOH測試,包括dojo源代碼樹之外的測試。創建一個配置文件這樣的說法在您的代碼模塊相對道場/ UTIL/DOH位置:

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

並將其命名爲config.js。打開命令窗口並進入包含「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

這裏有一個更詳細的解釋:我搬到我的/測試/ ...目錄到UTIL/DOH http://www.artificialworlds.net/blog/2012/10/09/running-dojo-doh-unit-tests-on-the-command-line-with-rhino/