2012-09-09 91 views
10

我想要讓travis-ci用jasmine-node來測試我的nodejs模塊。當我從命令行運行測試時,它們都會通過,但無論出於何種原因,Travis總是將我的構建報告爲失敗。我.travis.yml看起來是這樣的:Travis-CI與茉莉節點

language: node_js 
node_js: 
    - 0.6 
    - 0.8 

和我的package.json看起來是這樣的:

"scripts": { 
    "test": "jasmine-node tests/*.spec.js" 
} 

我試着加入before_script我travis.yml

language: node_js 
node_js: 
    - 0.6 
    - 0.8 
before_script: 
    - "sudo npm i -g jasmine-node" 

有什麼建議嗎?

+0

您是否將jasmine-node作爲開發依賴項?失敗的Travis-CI測試的輸出是什麼?你應該只是發佈一個鏈接到測試,因爲它是公開的。 –

+0

我其實剛剛跑步。我現在發佈我的答案。 – thewildpendulum

+1

另請注意,您可以使用--save-dev標誌將開發依賴關係添加到package.json中。例如:'npm install --save-dev jasmine-node' – Noah

回答

10

經過一段時間travis-ci lint web app後,它看起來像只是在我的.travis.yml文件格式化問題。我的文本編輯器插入了製表符,看起來yaml只需要使用空格。我還在每件事情上都加了引號,以便更好地衡量。

現在看起來是這樣,確保我只是用一個空格和換行後:

language: node_js 
node_js: 
    - "0.6" 
    - "0.8" 
before_script: 
    - "npm i -g jasmine-node" 
+0

按照@ dan-tao的建議,從'before_script'中刪除'sudo'已更新 – thewildpendulum

+0

謝謝,那幫了我! –

0

我前一段時間也有類似的問題,我用的時候茉莉節點-g和因爲它是一個簡單的kata,我認爲沒有必要在文件夾中添加package.json,但是當我將其與travis-ci集成到同一個項目中時,我經歷了地獄之後才能夠配置它。

隨着時間的推移,我才知道,那是更好地保持整潔,緊,使用友好的package.json而不是全局安裝(這是一個很好後談論它在這裏例如:Why to avoid global test runners

我的建議是你茉莉節點添加到的package.json,東西短,因爲這

{ 
    "name" : "XXX", 
    "version" : "1.0.0", 
    "devDependencies" : { 
     "jasmine-node" : "latest" 
    }, 
    "scripts" : { 
     "test" : "jasmine-node specs/*spec.js" 
    } 
} 

一定將節省您的頭痛噸配置時間不僅與特拉維斯-CI整合,並如果有人想重複使用你所做的事情,那麼可以節省別人的時間。 ;)