2012-09-18 24 views
1

我一直試圖使用requirejsjs-test-driver並排,我看不出它的工作。是否可以運行使用requirejs模塊的js-test-driver測試?

我有一個最小的配置這樣在根:

server: http://localhost:9876 

load: 
- src/main/resources/web/resources/vendor/requirejs/require.js 

test: 
- src/test/js/*.js 

A 「的src /主/ JS/greeter.js」 文件定義一個傻模塊:

define(function(require) { 

    myapp = {}; 

    myapp.Greeter = function() { 
    }; 

    myapp.Greeter.prototype.greet = function(name) { 
    return "Hello " + name + "!"; 
    }; 

    return myapp; 
}); 

和I」米試圖讓需要負載迎賓模塊中的「SRC /測試/ JS/greeterTest.js」:

GreeterTest = TestCase("GreeterTest"); 

require.configure({ ???? }); 
require([ "src/main/js/greeter" ], function(myapp) { 

    GreeterTest.prototype.testGreet = function() { 
    var greeter = new myapp.Greeter(); 
    assertEquals("Hello World!", greeter.greet("World")); 
    }; 

}); 

每當我跑,我得到一個錯誤,因爲myapp在創建Greeter時沒有定義。

那麼有沒有一種方法可以配置在這種情況下需要?我想:

  • 的的baseUrl屬性設置爲類似文件:/// ....給使用網關配置代理該requirejs可能做的請求文件
  • 的位置(雖然我有沒有服務器運行js文件服務,所以我不得不使用文件:///)

有什麼我應該嘗試?

感謝

回答

1

原來這是可能的,但記錄不完整:

  • JS測試驅動器具有'serve'設置,可以讓測試服務器響應靜態文件
  • 一次服,文件可以在localhost:42442/test/xxxx中找到(除了在doc頁面的低評論中,'test'前綴從未被提及過。

所以此工程:


server: http://localhost:9876 

load: 
    - src/main/resources/web/resources/vendor/requirejs/require.js 

test: 
    - src/test/js/*.js 

serve: 
    - src/main/js/*.js 

而且requirejs有像這樣被配置:

 

require({ 
    baseUrl : "/test/src/main/js" 
}, [ "greeter" ], function(myapp) { 

    GreeterTest = TestCase("GreeterTest"); 

    GreeterTest.prototype.testGreet = function() { 
     var greeter = new myapp.Greeter(); 
     assertEquals("Hello World!", greeter.greet("World")); 
    }; 

}); 
 

注意:

  • 的/前測試
  • 的事實上,你必須reu選擇「src/main/js」部分;我想這與我的jsTestDriver配置與「src」文件夾位於同一級別,並且如果放置其他位置可能需要一些調整。
相關問題