Je fais lentement des parties de jeu de git et d'unité de mon flux de travail régulier. J'apprécierais des conseils sur la question de savoir si des cadres de test unitaire (pas les tests eux-mêmes, mais le cadre réel) devrait être inclus dans le repo Git du projet. P>
D'une part, il semble que cela ne devrait pas, car les cadres sont a) facilement disponibles ailleurs et b) pas uniques à un projet (je parle de cadres populaires tels que QNIT pour JS ou SimpleTetest en PHP). Dans ce cas, peut-être un simple réveil dans le représentant indiquant la version du cadre et où l'obtenir serait suffisant. P>
D'autre part, les tests font partie du projet (et une partie du représentant) et ont besoin du cadre à exécuter, donc pour des raisons d'exhaustivité, le cadre devrait peut-être être inclus également? P >
Merci. P>
8 Réponses :
Je dirais non, car ils sont facilement disponibles ailleurs, et tout développeur expérimenté doit déjà avoir des bibliothèques facilement disponibles. p>
En outre, certains IDE modernes (Eclipse en particulier) expédient déjà avec les bibliothèques de test de l'unité dont vous avez besoin. Il n'est donc pas essentiel de les expédier avec votre source. P>
Je comprends presque toujours le cadre (une sain d'esprit devrait être quelques bibliothèques et exécutables, donc pas si grand) - la source et les tests sont versionnés, et si je revenez jamais à la version 1.2 de mon code de 2001, Je veux que les tests courent lorsque je fais ce correctif - ne pas échouer parce que j'utilise le cadre de test que j'ai changé en 2006. P>
Sans le cadre de test dans le contrôle de la source, j'ajoute une autre chose que je dois correspondre aux versions de. Heck, je souhaiterais que le compilateur et les bibliothèques linguistiques se trouvent également si cela était réalisable. P>
Si vous avez un outil de test géant / plate-forme qui ne peut pas facilement être mis à côté (ou ne pouvez pas être mis à côté), assurez-vous que vous incluez une DOC d'une sorte qui indique à quel outil, quelle version, quelle version, et éventuellement comment l'obtenir aux côtés des tests. P>
question intéressante. Je ne pense pas que le cadre de test soit inclus dans un référentiel d'applications cependant. P>
Nommez les prérequis de votre projet dans un fichier README. Si vous avez plusieurs projets qui utilisent le même cadre de test, vous avez déjà installé le framework et vous ne souhaitez probablement pas le télécharger ni l'installer pour chaque projet. P>
J'inclus les DLL de Nunit dans tous mes référentiels avec des tests unitaires. En fait, j'inclus tout dans le référentiel que j'ai besoin pour compiler et exécuter des tests. Bien sûr, cela n'est pas réalisable pour certains projets, mais lorsqu'il est réalisable, il devient extrêmement facile de simplement vérifier le référentiel et de commencer à travailler. Pas de configuration requise. P>
Non, vous ne devriez pas inclure des cadres extérieurs dans votre représentant, à moins que vous ne modifiez réellement les cadres de travailler avec votre projet. P>
Selon la langue que vous utilisez, vous pouvez utiliser un fichier README ou compter sur vos outils d'emballage; Par exemple, le module Distutils et Perl de Python :: La construction permet de spécifier quels modules externes sont nécessaires pour exécuter vos tests et installeront les dépendances de vos utilisateurs. P>
Nous ajoutons Cela a l'avantage que vous avez tous les composants requis au même endroit. Si vous avez un nouvel ordinateur, vous devez simplement vous installer IDE de votre choix, consulter le référentiel et vous êtes prêt. P>
Cela facilite également la retournement d'un processus de construction sur un serveur de construction, car il vous suffit de le pointer vers votre référentiel, ce qui inclut tout nécessaire pour une construction (malgré la framework .NET). Par conséquent, il est facile de créer une version d'une version plus ancienne sans aucun problème de version. P>
d'un monde Python, j'inclus les dépendances de mon fichier Avec des tarbasses, j'inclus parfois un Fichier de test généré a>
Pour que les gens puissent au moins faire des tests de santé mentale avant d'exécuter le projet. p> setup.py code>. Les développeurs peuvent les récupérer alors. p>
Lire les réponses à cette question est intéressante, car elle montre une très large gamme d'interprétations de nombreux aspects différents du développement logiciel. Je suis normalement convaincu que les dépendances de quelque nature que ce soit ne doivent pas être stockées dans les VCS (par VCS, je me réfère à des outils tels que GIT, HG, SVN, CV et non plus grands systèmes intégrant de tels outils, tels que Xcode) car c'est-à-dire pas le travail de la VCS. Le suivi de dépendance est préférable à un outil d'emballage. (Il semble que de nombreuses personnes utilisent les VCS comme un outil d'emballage primitif, que l'IMHO est une énorme erreur.) P>
Je pense que vous devez clarifier ce que vous entendez par «cadre de test». Pour moi, la plupart de mes suites de test sont invoquées par le cadre fourni par Automake. Je n'inclus certainement pas automake dans mon référentiel Git, mais il n'y a pas de problème avec les différences de version à l'avenir, car tout le cadre de test généré par Automake est inclus dans la Distribution Tarball. Donc, vraiment la question est repoussée un niveau de plus. Si vous utilisez uniquement un VCS pour suivre vos versions, vous avez un problème car vous avez vraiment besoin d'avoir le cadre de test disponible lorsque vous consultez une ancienne version du projet. Si le VCS est le seul mécanisme de stockage pour récupérer les anciennes versions (c'est-à-dire que vous n'utilisez aucun archivage de sorties de versions dans des tagles), il semble que vous soyez obligé de mettre le cadre dans la VCS. Mais mettre des logiciels externes dans votre VCS est franchement, stupide. La seule raison de faire est si vous utilisez les VCS comme outil de distribution. Je suppose donc que ma réponse est la suivante: ne mettez pas le cadre dans votre VCS, mais mettez le cadre dans vos distributions. Si votre VCS est votre outil de distribution, il n'ya pas de moyen approprié de traiter le cadre de test. P>
La distinction entre VCS et distribution / emballage est intéressante et dont je n'ai pas vraiment entendu articulé auparavant. Je pense que cette distinction capture l'ambiguïté que j'avais du mal, alors je marquais cela comme la réponse, même si je pensais que beaucoup des autres réponses étaient également bonnes.