2010-01-16 5 views
2

Je commence à peine à TDD, et en regardant autour de moi, la concensité générale semble être d'avoir un mappage un à un d'un projet de code à un projet de test. Ma question est, si vous suivez cette voie, et avez plusieurs assemblées de test, quelle est la meilleure façon de les exécuter dans le cadre d'un script NAnt? Si cela fait une différence, j'utilise NUnit comme cadre de test.Script NAnt pour exécuter plusieurs assemblages de test

Répondre

0

Vous pouvez créer un "projet de test" via l'interface graphique NUnit et l'enregistrer dans un fichier. Dans l'interface graphique, vous pouvez ajouter au projet les dll de test, qui à leur tour référencent celles en cours de test.

Vous pouvez ensuite transmettre ce fichier à la console NUnit à partir de NAnt. par exemple.

<property name="nunit.output" value="${dir.reports.nunit}\nunit-results.xml" /> 
<property name="nunit.input" value="proj.nunit" /> 

<exec program="${dir.tools}\nunit\bin\nunit-console.exe" failonerror="true"> 
    <arg value="${nunit.input}" /> 
    <arg value="/xml:${nunit.output}" /> 
</exec> 

De cette façon, NAnt pas besoin de connaître sur les dll de test, juste le projet NUnit qui contient cette information.

0

Je suggère que la meilleure façon de faire est de compiler les deux projets de NAnt individuellement en utilisant la commande CSC référençant chaque fichier de projet (csproj) plutôt que la solution. Utilisez ensuite la commande nunit-console (en tant que tâche Nant distincte) pour exécuter vos tests. Si vous avez un grand script de construction/fichier qui le fait ou séparez-en deux pour chaque projet ou tâche, c'est à vous de décider (ou à la complexité de vos projets). La façon dont j'ai configuré les builds de mon équipe est que j'ai un script de construction «maître» qui appelle dans d'autres scripts de construction pour effectuer des tâches spécifiques. Par exemple, 'master' appelle 'compile' puis 'test' (en passant les résultats du script 'compile'). De cette façon, la compilation de mon projet de base est séparée des tests automatisés.

Questions connexes