2012-06-07 33 views

回答

4

我認爲目前還沒有jasmine-browserify軟件包,它與Browserify/NPM的做法並不真正匹配(避免全球導出)。

現在,我只包括/node_modules/jasmine-reporters/ext/jasmine.jsjasmine-html.js<head>的頂部,並要求我在頂層spec_entry.js所有的規格,我再爲切入點,我擺正之後在一個Browserify捆綁使用<head>。 (請注意,如果入口點不是最高級別,那麼由於Browserify中存在持久且粗糙的錯誤,您將會遇到不好的時間)。

只要您不假定存在全局的documentwindow,就可以很好地與jasmine-node配合使用。但是,您必須記住在spec_entry.js中註冊您的規格,除非您想破解Browserify以使其抓取.spec.js文件的目錄。

我會對一個更優雅的解決方案非常感興趣,但是,這將透明地與茉莉節點和browserify一起工作。

+3

嗨,很晚,但如果它是仍然對你有幫助,請查看我的回覆或https://github.com/amitayd/grunt-browserify-jasmine-node-example –

8

我已經創建了一個詳細的示例項目來解決茉莉花測試(和其他) - 請參閱https://github.com/amitayd/grunt-browserify-jasmine-node-example。討論在my blog post

這方面的方法是爲主要源代碼(其中所有模塊都公開)創建一個Browserify捆綁包,以及一個用於主要源代碼依賴外部的測試。然後可以在PhantomJS或真正的瀏覽器中運行測試。

4

如果使用grunt-watchify,則不需要創建spec_entry.js。只需使用需要在您的規格,然後咕嚕-watchify捆綁你的規格:

watchify: { 
     test: { 
      src: './spec/**/*Spec.js', 
      dest: 'spec/spec-bundle.js' 
     } 
    }, 
    jasmine: { 
     test: { 
      options: { 
       specs: 'spec/spec-bundle.js' 
      } 
     } 
    }, 

然後用

grunt.registerTask('test', ['watchify:test','jasmine:test']); 
1

由於以上所有答案都有點過時(當然這並不意味着他們沒有工作更多的等等),我想指出https://github.com/nikku/karma-browserify這是因果報應亞軍的預處理器。它將測試文件與所有必需的依賴關係結合起來這樣創建的browserify包被傳遞給基於配置運行它的業力。請注意,你可以選擇任何現代化的測試框架(jasmin,mocha ...)和瀏覽器(幻像,鉻)..可能這正是你需要:)