Siamo un negozio Scala/Java e usiamo Gradle per la nostra build e Hudson per CI. Di recente abbiamo scritto alcuni codici node.js con test in mocha. Esiste comunque la possibilità di includerlo nel nostro flusso di lavoro graduale e impostazione in Hudson? Ho guardato il numero gradle-javascript-plugin ma non sono riuscito a capire come eseguire il test npm o l'installazione di npm attraverso di esso e non sono sicuro di come farlo funzionare attraverso i comandi gradle-build o gradle-test e lasciare che sia Hudson a prenderlo.Come includere i test NodeJS in Gradle e Hudson?
risposta
Posso farvi parte del modo in cui ci sono, sono a metà strada anche su questo compito. Assicurati di avere almeno 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')
}
Riferimento: http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html
Fornito con un modo per compilare il mio CoffeeScript ora posso aggiungere il NPM installazione cmd in una richiesta exec groove e barf seconda delle cmd exec di risultati che fornisce output/error
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
Risultati in:
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!')
}
}
Come Per quanto riguarda i test della moka, non ne ho una conoscenza di prima mano, tuttavia sospetto che tu possa gestire allo stesso modo.
Se vi piace Docker ti avrebbe fatto piacere questo plugin Gradle: https://github.com/dimafeng/containerized-tasks
L'idea principale è quella di eseguire le attività NPM all'interno di un contenitore di finestra mobile che verrà gettato via subito dopo la costruzione (ma node_modules verranno memorizzate nella cache in la tua directory di costruzione). Quindi non è necessario installare npm sul tuo hudson/jenkins/whatever-ci e gestirne le versioni.
Ecco un semplice esempio di come può sembrare:
plugins {
id "com.dimafeng.containerizedTask" version "0.4.0"
}
npmContainerizedTask {
sourcesDir = 'test-env/gulp'
outputLevel = 'INFO' // ALL, DEBUG
scriptBody = 'npm install\ngulp'
}
Dove, sourcesDir
è una directory con i tuoi package.json
, scriptBody
i comandi che devono essere eseguiti all'interno del contenitore.
Quindi eseguire solo ./gradlew npmContainerizedTask
- 1. Saltare i test in IntelliJ utilizzando Gradle
- 2. Come configurare MongoDB per i test di integrazione in NodeJS?
- 3. Come posso includere i test di unità nell'assemblaggio di Maven?
- 4. Come configurare i test del selenio con gradle?
- 5. Come eseguire i test cetriolo-jvm utilizzando Gradle
- 6. Gradle: come eseguire i test da una dipendenza del modulo?
- 7. Attività test gradle Android
- 8. test continui con gradle
- 9. Come includere il motore fisico Liquidfun con nodejs
- 10. nodejs, eseguire test automaticamente quando i file cambiano
- 11. Splitting main e test in build di eclissi di gradle
- 12. Run JUnit test con la primavera e @category Gradle
- 13. Automated Web UI test in nodejs
- 14. Come possiamo eseguire i test jasmine JavaScript da Jenkins (Hudson) senza caricare un JSP?
- 15. Hudson come server passivo
- 16. Come eseguire il test Gradle quando tutti i test sono AGGIORNATI?
- 17. Come richiamare i moduli nodejs da scala.js?
- 18. hudson cobertura reporting 0
- 19. Come includere le classi di test e le dipendenze di test nell'assembly di sbt
- 20. Come elencare i plugin disponibili in Gradle
- 21. JUnit XML "pacchetti" in hudson
- 22. Dove/come includere i metodi di supporto per i test di integrazione capibara
- 23. Non fallire la creazione di gradle se un test fallisce con il gradle-android-test-plugin
- 24. Come posso eseguire i test di Moka asincrono (NodeJS) in ordine?
- 25. Gradle - posso includere l'output dell'attività nelle dipendenze del progetto
- 26. Rilascio di un pacchetto python - dovresti includere doc e test?
- 27. NodeJs, Mocha e Mongoose
- 28. Versione gradle e gradle-wrapper.properties
- 29. Strumenti/metodi per test di stress NodeJs
- 30. fail hudson build su unità singola test failure