2011-08-29 1 views
6

J'ai rencontré un problème avec l'environnement de test dans un problème C++.Existe-t-il un outil de type virtualenv pour C++?

Nous avons une machine qui télécharge le code à partir du système de contrôle de version et, le construire et exécuter le test unitaire, rien de nouveau.

Le problème survient lorsque nous ajoutons une nouvelle dépendance dans notre projet. Nous développons beaucoup de fonctionnalités en même temps et c'est quelque chose de relativement commun. Nous cela arrive, nous devons informer les testeurs et leur donner un moyen facile de reproduire l'environnement de compilation ...

Et je pensais s'il y avait une autre façon facile de passer par ce ... ne sais pas, certains outil comme virtualenv ou buildout pour python ..

J'ai cherché sur google, mais sans chance.

Toute aide sera appréciée.

+0

En outre, pour quel OS construisez-vous? – bdonlan

+0

Aussi, je ne vois pas comment c'est * particulièrement * lié au C++ ... c'est un problème courant des processus de construction, et le fait que vous utilisiez C++ ne fait aucune différence, le même problème se produirait dans n'importe quel autre la langue. –

Répondre

1

Vous pouvez toujours ajouter toutes les dépendances au système de contrôle de révision et fournir des scripts automatisés qui installeront les sous-systèmes requis. Là où je travaille, si vous téléchargez simplement la version actuelle à partir du dépôt, vous pouvez construire en une seule étape une image ISO qui peut être installée par les testeurs dans n'importe quel ordinateur de leur choix. L'image contient tout de l'OS jusqu'à l'application. En fonction de votre situation particulière, vous pouvez commencer par des étapes plus petites, par exemple ajouter les dépendances au référentiel et demander aux testeurs de vérifier si un nouveau fichier apparaît ou de modifier la version.

0

Aucun outil prêt, AFAIK, sauf peut-être pour CMake qui peut contrôler des choses comme ça pour vous.

Pour C++, il est assez facile de gérer "à la main" car vous pouvez définir les variables d'environnement LIB, LIBPATH et PATH dans des répertoires soigneusement sélectionnés. Aucun site.py, oeufs, fichiers .pth et similaires comme avec Python. Nous faisons ceci à notre magasin, en établissant notre environnement de construction/développement étroitement et avons tout dans le contrôle de révision (la plupart du temps des manuscrits qui téléchargent d'énormes fermetures à glissière de librairies prédéfinies et les déballent aux bons endroits).

petits libs sont copiés dirs communs, plus obtenir leur propre entrée dans les env-vars.

Cela fonctionne aussi bien pour Python et Java. Je n'ai pas essayé d'autres langues ... pour le moment. :)