2008-08-25 12 views
30

Las cadenas de herramientas de Integración Continua para .NET, Java y otros lenguajes están relativamente bien definidas, pero el mercado de C++ parece tener mucha diversidad.¿Qué cadenas de herramientas existen para la integración continua con C++?

Por IC del "conjunto de herramientas" que significa específicamente herramientas para el scripts de construcción, pruebas automatizadas, las normas de codificación de cheques, etc.

¿Cuáles son los equipos de C++ utilizando cadenas de herramientas para la IC?

+3

"(¿Y por qué chupar nuestras cadenas de herramientas tan malo en comparación con los programadores Java/.NET?!?. Esa es otra pregunta en sí misma ... – quark

+0

Votación para cerrar como fuera del tema –

Respuesta

2

Visual Build Professional es mi herramienta favorita para unir todas las demás herramientas. Solo Windows, por supuesto, pero se integra con todos los gustos de Visual Studio y una gran cantidad de herramientas de prueba, herramientas de controles de origen, rastreadores de problemas, etc. Sin embargo, es. Sé que esa no es toda la pila, pero es un comienzo.

1

día G,

En realidad nos enfrentamos a este problema en un sitio donde me contratantes con anterioridad.

Un tío se sentó y escribió herramientas, scripts, principalmente de conchas, a

  1. la salida de la base de código actual o menos cada hora y hacer una versión para comprobar si se ha roto, y
  2. la salida la última buena versión y hacer una compilación completa y ejecutar cerca de 8,000 pruebas de regresión.

No pudimos encontrar nada comercialmente disponible para hacer esto, por lo que Charlie se sentó y escribió esto en scripts bash shell y se estaba ejecutando en HP-UX.

aplausos, Rob

0

Al igual que con cualquier otra tarea aparentemente en C++, estoy apenas cojeando junto con la integración continua. Mi configuración comienza con Eclipse. Lo configuré para generar archivos make para mis proyectos. Tengo scripts ant que hacen las tareas generales de compilación ejecutando 'make all' o 'make clean' en los makefiles apropiados. Estos scripts de hormiga son parte de mi proyecto, y debo actualizarlos cuando agregue una nueva configuración de compilación o una pieza nueva al sistema. Aunque no es tan malo.

Uso CruiseControl para ejecutar realmente las compilaciones. Cada proyecto (todos ellos) tiene un script ant propio que realiza tareas específicas de compilación (copia de artefactos, resultados de procesamiento), invocando el guión de la tarea del proyecto para hacer el edificio.

Tuve que usar cppunit para mis pruebas y procesar los resultados con un archivo xslt que encontré en alguna parte. También tengo la etiqueta de revisión svn incorrecta en cada compilación porque no puedo encontrar una etiquetadora svn adecuada. Todo lo que puedo encontrar es un código de mitad de año medio completado y personas que argumentan que otras personas lo están haciendo mal.

Me parece que CC es un sistema en extinción, pero no he encontrado nada mejor para C++. Por otra parte, también siento que C++ es un lenguaje moribundo, por lo que tal vez sea más grande que esto.

+1

C++ no está muriendo, pero la mayoría de sus puntos fuertes solo brillan en el nicho mercados. – Tom

+0

Además ... Recomiendo mirar CxxTest, si tiene algo de tiempo para matar. El proyecto estuvo a punto de desaparecer por un tiempo, pero creo que ha sido recogido por nuevos responsables. Por defecto, produce resultados compatibles con cualquiera de los GCC "archivo: línea: mensaje" o archivo ICC/MSVC "(lin e): mensaje ". Sería muy fácil crear un resultado XML compatible con jUnit para él. – Tom

7

Otra opción podría ser buildbot.

Está escrito en python, pero no es solo para aplicaciones de Python. Puede ejecutar cualquier script para hacer tu compilación. Si nos fijamos en sus historias de éxito, parece que hay una gran variedad de idiomas.

0

Utilizamos scons para una integración continua ejecutada por un servidor central de compilación. Algunos proyectos migraron al buildbot.

Ahora estoy entrando en rake y teniendo en cuenta las soluciones según lo encuestado en this blog. Fowler menciona que ThoughtWorks ocasionalmente usa rake para sus scripting de compilación en su artículo Continuous Integration.

7

implementamos nuestra C++ infraestructura de plataforma de integración continua cruzada utilizando Parabuild

http://www.viewtier.com/products/parabuild/screenshots.htm

Hemos sido capaces de integrar todo tipo de herramienta de Win/Mac/Linux de control de calidad con él y es muy fácil de instalar y mantener: es una instalación de un clic en cada plataforma y la interfaz web es muy útil.

Si bien la evaluación de varios servidores de integración continua el problema principal era que estaban Java-sesgada: Parabuild, por el contrario, se ajusta bien en el C++ desarrollo multiplataforma y QA flujo de trabajo

+0

¿Qué ** sistema de compilación ** estás usando en Linux? No podemos encontrar nada que pueda hacer una construcción fuera de línea y con suerte será fácil de mantener e integrar con eclipse. – davka

+1

Usamos cmake como sistema de compilación principal: puede encontrar más información en http://www.cmake.org/. Es multiplataforma y también puede generar proyectos de eclipse como se describe en http://www.vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial#CMake_with_Eclipse –

+2

Actualización: actualmente estamos utilizando Jenkins http://www.jenkins-ci.org también (fue Hudson). Una habilidad interesante de Jenkins para build distribuida es su capacidad de instalarse remotamente en nodos de construcción de esclavos. Esto es muy útil para escalar su infraestructura, ya que solo necesita instalar y mantener una, y solo una, instancia de Jenkins en el nodo maestro de compilación. –

Cuestiones relacionadas