我們是一個Scala/Java商店,我們使用Gradle構建我們的構建,使用Hudson構建CI。我們最近用mocha中的測試編寫了一些node.js代碼。無論如何要將它納入我們的Gradle工作流程並在Hudson中進行設置?我查看了gradle-javascript-plugin,但我不知道如何通過它運行npm test或npm install,也不知道如何通過gradle-build或gradle-test命令來運行npm test或npm install,也讓Hudson撿起它。如何將NodeJS測試包含到Gradle和Hudson中?
6
A
回答
3
我可以讓你成爲那裏的一部分,我也在這個任務的中間。確保你至少有Gradle 1.2。
import org.gradle.plugins.javascript.coffeescript.CoffeeScriptCompile
apply plugin: 'coffeescript-base'
repositories {
mavenCentral()
maven {
url 'http://repo.gradle.org/gradle/javascript-public'
}
}
task compileCoffee(type: CoffeeScriptCompile){
source fileTree('src')
destinationDir file('lib')
}
參考:http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html
一個辦法來編譯我的CoffeeScript我現在可以添加故宮提供的安裝cmd進入取決於EXEC CMD一個Groovy EXEC請求和BARF結果提供標準輸出/標準錯誤
npm install
echo $?
0
npm install
npm ERR! install Couldn't read dependencies
npm ERR! Failed to parse json
npm ERR! Unexpected token }
npm ERR! File: /<>/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse
npm ERR! System Darwin 11.4.2
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /<>/
npm ERR! node -v v0.8.14
npm ERR! npm -v 1.1.65
npm ERR! file /<>/package.json
npm ERR! code EJSONPARSE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /<>/npm-debug.log
npm ERR! not ok code 0
echo $?
1
結果:
task npmDependencies {
def proc = 'npm install'.execute()
proc.in.eachLine { line -> println line}
proc.err.eachLine { line -> println 'ERROR: '+line }
proc.waitFor()
if (proc.exitValue()!=0){
throw new RuntimeException('NPM dependency installation failed!')
}
}
作爲就像摩卡測試一樣,我沒有這方面的第一手知識,但是我懷疑你可以用類似的方法處理。
0
如果你喜歡泊塢窗,你可能會喜歡這個gradle這個插件: https://github.com/dimafeng/containerized-tasks
主要思想是跑碼頭工人,容器將構建後立即被扔掉裏面的NPM任務(但node_modules將被緩存你的編譯目錄)。所以你不需要在你的hudson/jenkins/whatever-ci上安裝npm並管理它的版本。
下面是它如何可能看起來像一個簡單的例子:
plugins {
id "com.dimafeng.containerizedTask" version "0.4.0"
}
npmContainerizedTask {
sourcesDir = 'test-env/gulp'
outputLevel = 'INFO' // ALL, DEBUG
scriptBody = 'npm install\ngulp'
}
其中,sourcesDir
是與應在容器內執行你的package.json
,scriptBody
命令的目錄。
然後只是運行./gradlew npmContainerizedTask
相關問題
- 1. Hudson和JTReg測試
- 2. 如何在執行「gradle測試」時僅包含某些Java類
- 3. 如何通過Gradle運行測試時包含/排除TestNG組
- 4. 如何將測試類包含到shadowJar中?
- 5. Hudson CI和PHPUnit:沒有任何測試報告包含任何結果
- 6. 如何讓Hudson CI在狀態電子郵件中包含測試結果
- 7. 如何使用Gradle包含javax包
- 8. 如何在調試和測試寶石時包含目錄
- 9. 如何在RSpec mocked_model中正確包含和測試ActiveSupport :: Concern?
- 10. PHP - SimpleTest的 - 如何測試 「包含」 類
- 11. 如何測試XML包含節點
- 12. 如何測試包含WebView的活動?
- 13. 如何在gradle中的測試源代碼集中包含所有src/test/resources/**和src/main/java/**/*。html?
- 14. 嘗試將Gradle項目作爲依賴包含,但包含()不起作用
- 15. 如何在爆炸戰中使用Maven,Jetty和Spring將測試類包含在集成測試中?
- 16. Hudson和Maven測試運行兩次
- 17. Tomcat + Hudson和測試Django應用程序
- 18. Jenkins/Hudson和Gallio單元測試集成
- 19. 如何使用webpack將jquery包含在nodejs應用程序中?
- 20. 如何從Gradle測試中調用Gradle子項目的任務?
- 21. Nodejs如何檢測是否包含模塊
- 22. Gradle項目:當兩者都包含測試時,有什麼用於測試和集成文件夾?
- 23. 在Ionic中包含NodeJs
- 24. 如何將gensim包含到pycharm中
- 25. 如何將圖像包含到CSV中
- 26. 如何將log4net包含到類庫中?
- 27. 如何測試一個包含edittext,button和listview的android項目?
- 28. 如何將圖形添加到Hudson中
- 29. 包含Retrofit測試MVP Android
- 30. 如何將自定義報告集成到Hudson電子郵件和Hudson UI中?