12
votes

Tests unitaires dans le code de libération de production?

Couple de questions:

1.) Code de libération de test unit?

2.) Si tel est le cas, laissez-vous ensuite ces tests unitaires intacts afin que les tests soient eux-mêmes dans l'environnement de production?

Je vois la valeur dans N ° 1, mais s'agit-il d'une "bonne pratique" de créer des dépendances en production à, par exemple, les assemblages de la Nunit?

Donnez-moi vos pensées.


0 commentaires

5 Réponses :


8
votes

Oui et oui, le comportement des applications peut être différent entre la version de la libération et des déboges, par conséquent, dans le cadre du processus de libération, la construction de déverrouillage doit transmettre tous ses tests d'unité.


1 commentaires

Convenu que la version de version doit passer des tests d'unité ... mais déployer le cadre de test de l'unité avec le code de production?



18
votes
  1. absolument. Si notre construction passe la suite de tests de l'unité, il est marqué et un candidat à la production
  2. non. Les déploiements n'incluent pas les tests ni les bibliothèques de support (par exemple les bibliothèques de test unitaires, moqueurs, etc.)

    Ce qui précède est ma règle générale (je déploie habituellement des utilisateurs non techniques). Cependant, j'ai une exception, qui est un utilitaire de programmation qui est testé avec ~ 130 scripts de test. Étant donné que les scripts de test sont deux exemples, je les déploie avec la libération de la production et, par conséquent, ils améliorent la documentation existante.

    Déploiement de tests avec du code open-source est certainement intéressant. Il permet aux personnes de jouer avec, de modifier et de soumettre des correctifs, tout en pouvant exécuter les tests passés avec succès pour permettre la publication de l'artefact d'origine.


0 commentaires

2
votes
  1. oui bien sûr! Tests unitaires exécutés sur toutes les configurations de construction.

  2. Les tests d'unité sont toujours intacts, mais cela ne signifie pas que les assemblages expédiés dépendent de tout ce qui concerne les tests. Les tests sont toujours écrits dans un ensemble parallèle (dans le même environnement de construction) qui teste ensuite l'ensemble de production. L'assemblage parallèle n'est pas expédié car il ne contient que les tests.


0 commentaires

2
votes
  1. Oui, rappelez-vous que l'erreur classique "affirmer avec des effets secondaires" qui doivent également être attrapées. Mais celui-ci n'a pas besoin d'être fait aussi souvent que la construction de débogage, où un test complet devrait être effectué tous les jours.
  2. Typiquement, les tests d'unités sont dans différentes unités de traduction et dans un projet différent, de sorte qu'une version de libération du projet principal ne les touche pas du tout. Si vos tests d'unité sont dans les mêmes unités de traduction que le code testé cependant, vous pouvez utiliser la compilation conditionnelle pour les exclure des versions.

0 commentaires

2
votes

dépend du projet. Oui au numéro 1. Suivant le principal que tout doit être vérifié dans le contrôle de code source et il devrait être simple d'obtenir un nouveau développeur. Faites-leur partie du codeBase. Les nouvelles personnes peuvent faire un chèque et exécuter les tests.

s'ils sont déployés pour la production est un problème différent. Je n'ai pas travaillé sur un projet qui avait besoin de là-bas. Le modèle de déploiement des rails est (généralement) simplement un check-out de l'ensemble du projet sur une machine de production, alors oui ils sont là. Les projets Java / Maven ont une étape de construction / d'emballage entière, et généralement des tests d'unités peuvent-- et sont retirés lors de la construction du fichier final .war.

De toute façon, vous ne vous attendez pas à ce qu'ils courent. Dans l'environnement d'aujourd'hui, il n'a pas vraiment d'importance s'il y a du site, la mémoire et le disque sont si bon marché que ce n'est vraiment pas un problème. J'ai entendu l'argument selon lequel vous ne souhaitez pas le code de test sur le serveur de production, de sorte qu'il n'y ait aucun risque de fonctionner, mais je n'ai pas entendu parler d'un scénario lorsque cela se produirait vraiment.


0 commentaires