使用節點測試客戶端coffeescript/js我有一個web應用程序,客戶端的東西用coffeescript編寫並加載了require.js。我如何使用expresso/jasmine/<other>
我希望能夠使用基於節點的測試運行程序(如expresso)(儘管歡迎其他建議)隔離和測試此類東西,以便我可以將客戶端測試與我們的CI服務器集成 - 目前Team市。
這裏是我的目錄設置:
.
├── coffee
│ ├── models
│ ├── node_modules
│ │ └── expresso
│ ├── spec
│ ├── tests
│ └── views
├── static
│ └── js
│ ├── lib
│ ├── models
│ ├── tests
│ └── views
這些迷上了使用require.js像這樣:
deps = [
"lib/backbone", "models/websocket_collection", "/static/js/lib/date.js"
]
define(deps, (Backbone, ws) ->
# module code and exports here
並加載到瀏覽器中,像這樣:
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="my_mod" src="/static/js/my_mod.js"></script>
在現在的創意世界中,我希望能夠擁有一個如下所示的測試模塊:
{Model1, Model2} = require "models/some_module"
exports.test_a = ->
assert.equal # etc etc
我有幾個問題(有沒有真正使用節點服務器端除了當我zombie.js飾演)
如何判斷節點,在我所有的普通的JavaScript依賴關係的(靜態/ JS/lib目錄),其中一些是爲下載,但Backbone.js的已標記了require.js定義的東西,像這樣
define(function(require, exports, module) { (function(){
如何實際運行測試?我試過r.js(這是我的理解應該是之間的瀏覽器端的要求和節點要求的橋樑)
,我發現了問題是:
ReferenceError: define is not defined
我還試圖要求(「allplugins-require」),這是我加載瀏覽器端收集所有客戶端代碼的腳本,但這似乎違反了節點的要求。
- 有人這樣做嗎?
- 如果你不這樣做你如何測試你的代碼(與CI集成的積分)?
- require.js的任何替代方法可用於管理客戶端依賴關係,這些依賴關係在服務器端可能會更好一些?
我很樂意聽到人們正在使用的替代方法。
感謝, 本
這聽起來是一個不錯的方法......在你前面的全局變量解決方案如何DOD你周圍的定義是不確定的? –
自己定義它。 – liammclennan