Somos una tienda de Scala/Java y utilizamos Gradle para nuestra construcción y Hudson para CI. Recientemente escribimos código node.js con pruebas en mocha. ¿Hay alguna forma de incluir eso en nuestro flujo de trabajo y configuración en Hudson? Miré el gradle-javascript-plugin pero no pude entender cómo ejecutar la prueba npm o la instalación npm a través de él y no estoy seguro de cómo hacer que se ejecute a través de los comandos gradle-build o gradle-test y también dejar que Hudson lo recoja.¿Cómo incluir las pruebas de NodeJS en Gradle y Hudson?
Respuesta
Puedo hacerte una parte del camino, también estoy a mitad de camino en esta tarea. Asegúrate de tener al menos 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')
}
Referencia: http://gradle.1045684.n5.nabble.com/State-of-javascript-stuff-in-master-td5709818.html
Provisto de una forma de compilar mi CoffeeScript ahora puedo añadir el NPM instalación cmd en una solicitud ejecutivo maravilloso y vomitar en función de las cmd exec de resultados que proporciona stdout/stderr
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
resultados en:
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!')
}
}
Como En la medida en que las pruebas de mocha, no tengo conocimiento de primera mano de esto, sin embargo, sospecho que puede manejarlo de manera similar.
Si te gusta la ventana acoplable que puede gustarte este plug-in Gradle: https://github.com/dimafeng/containerized-tasks
La idea principal es ejecutar sus tareas NGP dentro de un contenedor ventana acoplable que será desechado inmediatamente después de la acumulación (pero node_modules se almacenan en caché en su directorio de compilación). Por lo tanto, no necesita instalar npm en su hudson/jenkins/whatever-ci y administrar sus versiones.
Aquí está un ejemplo sencillo de cómo puede verse como:
plugins {
id "com.dimafeng.containerizedTask" version "0.4.0"
}
npmContainerizedTask {
sourcesDir = 'test-env/gulp'
outputLevel = 'INFO' // ALL, DEBUG
scriptBody = 'npm install\ngulp'
}
Cuando, sourcesDir
es un directorio con sus package.json
, scriptBody
los comandos que deben ser ejecutados dentro del contenedor.
Entonces simplemente ejecute ./gradlew npmContainerizedTask
- 1. Cómo ejecutar las pruebas de pepino-jvm con Gradle
- 2. ¿Cómo incluir módulos nodejs en archivos html?
- 3. ¿Cómo puedo ejecutar pruebas de Mocha asíncronas (NodeJS) en orden?
- 4. Guía para pruebas de scripts Gradle
- 5. Pruebas de rendimiento de Apache vs nodejs
- 6. Selección de pruebas específicas para funcionar en Gradle
- 7. ¿Cómo puedo incluir pruebas unitarias en el ensamblaje de maven?
- 8. cómo hacer que Hudson CI incluya los resultados de las pruebas en el estado de correo electrónico
- 9. XCode 4 - 'Incluir pruebas unitarias'
- 10. Combinar informes de pruebas unitarias de proyectos múltiples Gradle compilación
- 11. Problemas con los "resultados agregados de las pruebas posteriores" en Hudson
- 12. Mark Gradle build inestable en Jenkins cuando las pruebas JUnit fallan
- 13. Tener las últimas pruebas Información de resultados en el correo electrónico notificado con Hudson
- 14. liste las particiones en nodejs
- 15. Comprensión de las exportaciones en NodeJS
- 16. Al ejecutar NUnit y especificar una categoría, ¿se pueden incluir todas las pruebas sin categoría?
- 17. Integración continua (Hudson/Jenkins) y programación R
- 18. ¿Cómo incluir las constantes y variables de un Módulo?
- 19. ¿Cómo incluir CSS en las páginas maestras?
- 20. Cómo organizar el código y las pruebas con asp.net mvc y pruebas de unidades
- 21. ¿Qué son las pruebas unitarias y las pruebas de integración, y qué otros tipos de pruebas debo conocer?
- 22. Dart Nodejs y Socketio
- 23. Ejecutando Hudson en EC2
- 24. ¿Cómo incluir correctamente las fuentes de Java en Maven?
- 25. informe de prueba de unidad doble con hudson y maven
- 26. Hudson y maven-release-plugin
- 27. TeamCity y ejecutar las pruebas de NUnit
- 28. ¿Cómo organizar las pruebas de integridad de datos en vivo y las pruebas de unidad de código?
- 29. Pruebas unitarias en QTestLib - ejecución de pruebas individuales/pruebas en clase/todas las pruebas
- 30. Gradle jettyRun: ¿cómo funciona esto?