2010-10-29 4 views
1

J'ai un projet php en subversion, avec la structure typique /project/trunk/, /project/test/, /project/branches/. Je veux commencer à écrire des tests unitaires avec PHPUnit. Où est un bon endroit pour stocker ces fichiers dans le contrôle de version? Si je les mets dans /project/unittests/, je devrais vérifier le répertoire qu'ils testent en parallèle, donc c'est un peu de tracas que je dois m'assurer que je fais correctement. Si je les garde dans le projet, disons au /project/trunk/unittests/, ils seront là quand je déploierai le site, à moins que je n'aie quelques hooks supplémentaires pour ne pas les exporter, ou au moins m'assurer que mon .htaccess ne permet pas de les servir.Où puis-je stocker mes fichiers de test unitaires dans mon projet PHP?

Répondre

1

Vous pouvez les placer n'importe où. Personnellement, je toujours la configuration de mon projet comme celui-ci:

 
project 
    |-- trunk/ 
    |  |-- ... Other directory 
    |  `-- tests 
    |-- branches 
    |  `-- development 
    `-- tags 

Lorsque je fusionne le tronc à la branche de développement, je ne commets pas le répertoire « trunk/tests ». Ainsi, toute balise créée à l'aide de la branche de développement n'inclut pas les tests.

3

Je les stocke dans mon répertoire de projet et non dans un répertoire svn séparé car unittests sont directement liés à l'état du projet et peuvent différer d'un état à l'autre. Vous devriez juste faire attention qu'ils ne sont pas accessibles sur le web.

Par exemple, pour chaque état ma structure ressemble à ceci (en utilisant le zend framework), web est le seul répertoire accessible sur le Web:

    l'application
  • (contrôleur, configuration)
  • bibliothèque (bibliothèque zend, bibliothèque)
  • unittests (unittests;)
  • web (index.php, .htaccess, images et autres unexecutables)
  • journaux
+0

Le répertoire de logs - comment l'empêcher d'être écrasé lorsque vous exportez une nouvelle version du site (si c'est ainsi que vous vous y prenez)? Le répertoire, sans les journaux réels, est-il en vc ou pas? Ou est-ce que 'logs' vit juste indépendamment de vc? – user151841

+0

Svn ignore le contenu du répertoire lors de la validation. Lors de la mise à jour Svn, les journaux de ma version live sont déjà supprimés (logrotate + dans le cadre du processus de maintenance) - de cette façon, les entrées de journaux des anciennes versions n'influencent pas l'analyse des journaux de la nouvelle version. – Fge

1

Je mettrais les tests unitaires avec le reste de votre code. Certainement dans un dossier séparé, mais cela devrait être avec la branche sur laquelle vous travaillez. Je ne vois pas de problème à les déployer en production. Vous voudrez probablement exécuter les tests en production pour vous assurer que tout fonctionne correctement avec la version php de production.

Questions connexes