NAnt avec des tests d'intégration de base de données, et éventuellement d'intégration continue

StackOverflow https://stackoverflow.com/questions/219156

  •  03-07-2019
  •  | 
  •  

Question

J'ai exploré différentes stratégies d'exécution de tests d'intégration dans certains scripts de compilation Nant. En général, un certain nombre de scripts différents sont enchaînés dans une construction monolithique comportant des cibles distinctes: staging (construire une version intermédiaire, telle que build), construire (juste construire le truc), intégration (construire le truc et exécuter les tests d'intégration). Cela fonctionne assez bien, la cible de construction prend environ le tiers du temps nécessaire pour être intégrée et elle n'est pas très longue, je ne me trouve donc pas enclin à l'exécuter fréquemment.

En revanche, la cible d'intégration prend suffisamment de temps pour que je ne veuille pas le faire très souvent - idéalement juste avant que je sois prêt à faire un déploiement. Cela vous semble-t-il une stratégie raisonnable? IOW, est-ce que je le fais bien?

Il est prévu de déplacer ce projet vers l'intégration continue. Je suis nouveau dans le domaine de l'intégration continue, mais je pense comprendre le concept de "briser la construction". alors je me demande quelles sont les bonnes pratiques à adopter pour en tirer le meilleur parti?

Toute bonne source de lecture sur ce sujet serait également appréciée. Merci!

Était-ce utile?

La solution

Oui, vous êtes sur la bonne voie. Ce que vous devez faire maintenant, c'est connecter votre cible cible à un processus automatisé. Je recommande d'utiliser soit City Team ou Cruise Control comme outil de CI. Une fois que vous avez configuré votre serveur automatiquement, vous pouvez exécuter vos tests de construction et vos tests unitaires à chaque enregistrement (intégration continue). Vos tests d'intégration pourraient ensuite se dérouler la nuit ou le week-end, car leur exécution prend généralement plus de temps. Si vos tests d'intégration réussissent, vous pouvez alors avoir un travail à déployer sur un QA ou un autre serveur.

Autres conseils

On dirait que vous êtes à 99% du chemin. Mon conseil est de plonger et de commencer à le faire. Vous en apprendrez beaucoup plus en franchissant le pas et en le faisant qu'en vous demandant si vous le faites correctement.

Mon entreprise utilise actuellement CruiseControl et je trouve personnellement que c’est génial.

Voir ce fil connexe Qu'est-ce qu'un bon processus de création de CI?

Vous êtes sur la bonne voie. Si vous utilisez un outil CI décent, vous devriez pouvoir configurer chaque configuration en tant que projet distinct qui déclenche la prochaine étape de la chaîne ... c’est-à-dire que la construction réussie déclenche les tests qui déclenchent le déploiement qui déclenche l’intégration, etc.

De cette façon, votre plus ancien " pause " arrête la ligne pour ainsi dire.

Nous utilisons CruiseControl pour créer, tester, configurer et déployer, exécuter des tests d'intégration et de couverture de code, des tests d'acceptation et des packages à publier. C’est avec un système de 8 ou plus de services Web et une douzaine de bases de données, toutes avec des dépendances de configuration et de déploiement liées entre plusieurs environnements avec des configurations différentes (de l’un à l’autre, des boîtiers simples aux boîtiers redondants pour chaque composant)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top