2011-08-29 21 views
6

He encontrado un problema con el entorno de prueba en un problema de C++.¿Hay alguna herramienta virtualenv como C++ por ahí?

Tenemos una máquina que descarga el código del sistema de control de versiones y lo construye y ejecuta la prueba de unidad, nada nuevo.

El problema surge cuando agregamos una nueva dependencia en nuestro proyecto. Estamos desarrollando muchas funciones al mismo tiempo y es algo relativamente común. Ocurre que tenemos que aconsejar a los probadores y darles una manera fácil de reproducir el entorno de compilación ...

Y estaba pensando si hay otra manera fácil de pasar por esto ... no sé, algunos herramienta como virtualenv o buildout para python ...

He estado buscando en google, pero sin suerte.

Cualquier ayuda será apreciada.

+0

Además, ¿para qué sistema operativo estás construyendo? – bdonlan

+0

Además, no veo cómo esto está * particularmente * relacionado con C++ ... este es un problema común de los procesos de compilación, y el hecho de que use C++ no hace ninguna diferencia, el mismo problema podría ocurrir en cualquier otro idioma. –

Respuesta

1

Siempre puede agregar todas las dependencias al sistema de control de revisiones y proporcionar scripts automatizados que instalarán los subsistemas necesarios. Donde trabajo, si solo descargas la versión actual del repositorio, puedes construir en un solo paso una imagen ISO que los probadores pueden instalar en cualquier computadora que deseen. La imagen contiene todo, desde el sistema operativo hasta la aplicación.

Dependiendo de su situación particular, es posible que desee comenzar con pasos más pequeños, como agregar las dependencias al repositorio y hacer que los verificadores verifiquen allí si aparece un nuevo archivo o si cambia la versión.

0

No hay herramienta lista, AFAIK, excepto tal vez para CMake que puede controlar cosas como esa para usted.

Para C++, es bastante fácil de administrar "a mano", ya que puede establecer variables de entorno LIB, LIBPATH y PATH en directorios cuidadosamente seleccionados. No hay archivos site.py, eggs, .pth y similares al igual que con Python.

Hacemos esto en nuestra tienda, configurando nuestro entorno de construcción/desarrollo de cerca y tenemos todo en control de revisión (sobre todo scripts que descargan enormes cremalleras de libs preconstruidas y las desempaqueta en los lugares correctos).

Libs pequeñas se copian en directorios comunes, más grandes obtienen su propia entrada en los env-vars.

Esto funciona igual de bien para Python y Java. No he probado otros idiomas ... todavía. :)

Cuestiones relacionadas