2011-08-29 10 views
6

Ho riscontrato un problema con l'ambiente di test in un problema C++.Esiste uno strumento simile a virtualenv per C++?

Abbiamo una macchina che scarica il codice dal sistema di controllo della versione e, lo costruisce ed esegue il test dell'unità, niente di nuovo.

Il problema sorge quando aggiungiamo una nuova dipendenza nel nostro progetto. Stiamo sviluppando molte funzionalità allo stesso tempo ed è qualcosa di relativamente comune. Succede che dobbiamo consigliare i tester e dare loro un modo semplice per riprodurre l'ambiente di compilazione ...

E stavo pensando se c'è un altro modo semplice per passare attraverso questo ... non so, alcuni strumento come virtualenv o buildout per python ..

Ho cercato su google, ma senza fortuna.

Qualsiasi aiuto sarà apprezzato.

+0

Inoltre, quale sistema operativo stai costruendo? – bdonlan

+0

Inoltre, non vedo come questo sia * particolarmente * correlato al C++ ... questo è un problema comune dei processi di compilazione, e il fatto che si usi il C++ non fa alcuna differenza, lo stesso problema potrebbe accadere in qualsiasi altro linguaggio. –

risposta

1

È sempre possibile aggiungere tutte le dipendenze al sistema di controllo di revisione e fornire script automatici che installeranno i sottosistemi richiesti. Dove lavoro, se scarichi la versione corrente dal repository, puoi costruire in un unico passaggio un'immagine ISO che può essere installata dai tester su qualsiasi computer che desiderano. L'immagine contiene tutto dal sistema operativo fino all'applicazione.

A seconda della situazione specifica, è possibile iniziare con passi più piccoli, ad esempio aggiungere le dipendenze al repository e fare in modo che i tester controllino l'eventuale presenza di nuovi file o modifiche della versione.

0

Nessuno strumento pronto, AFAIK, eccetto forse per CMake che può controllare cose del genere per te.

Per C++, è abbastanza facile da gestire "a mano" poiché è possibile impostare le variabili di ambiente LIB, LIBPATH e PATH in directory accuratamente selezionate. Nessun file site.py, uova, .pth e simili come con Python.

Lo facciamo nel nostro negozio, impostando da vicino il nostro ambiente di sviluppo/sviluppo e disponendo di tutto nel controllo di revisione (principalmente script che scaricano enormi zip di librerie predefinite e li scompattano nei posti giusti).

Piccole librerie vengono copiate nelle directory comuni, più grandi hanno la propria voce nell'env-vars.

Questo funziona ugualmente bene per Python e Java. Non ho ancora provato altre lingue ... :)

Problemi correlati