2009-04-14 3 views
0

Je suis conscient qu'il existe des dizaines de questions à ce sujet et blog après le blog, mais quelqu'un peut mettre la réponse la plus simple (ou un lien vers la question existante si une réponse appropriée) pour travailler sur Visual Studio 2005:Quel est le strict minimum requis pour intégrer les tests NUnit à la version standard de Visual Studio?

  1. des tests NUnit exécutent sur Visual studio de construction régulière (par exemple, les changements minimaux absolus au fichier existant .proj * pour obtenir NUnit inclus dans MSBuild compilation). Si cela ne complique pas les choses, existe-t-il un bon moyen d'utiliser le projet MSBuild Community Tasks comme un binaire plutôt que d'être installé sur chaque machine dev?

  2. Les échecs de test s'affichent dans la liste d'erreurs/les avertissements.

  3. Les échecs de test interrompent la compilation des versions.

Merci pour toute aide!

Répondre

1

Pour ce faire correctement, vous avez probablement besoin d'un serveur d'intégration continue tel que TeamCity ou Cruise Control.

Vous pouvez ensuite ajouter des tests nunit à votre script MsBuild utilisant le

<!--BEGIN RUNNING UNIT TESTS--> 
    <Choose> 
    <When Condition=" '$(Configuration)' == 'Release' "> 
     <ItemGroup> 
     <TestAssemblies Include="$(BuildDir)\Builds\Release\BusinessLayer.Tests.dll" /> 
     <TestAssemblies Include="$(BuildDir)\Builds\Release\ResourceAccessLayer.Tests.dll" /> 
     </ItemGroup> 
    </When> 
    <Otherwise> 
     <ItemGroup> 
     <TestAssemblies Include="$(BuildDir)\Builds\Debug\BusinessLayer.Tests.dll" /> 
     <TestAssemblies Include="$(BuildDir)\Builds\Debug\ResourceAccessLayer.Tests.dll" /> 
     </ItemGroup> 
    </Otherwise> 
    </Choose> 
    <UsingTask TaskName="NUnit" AssemblyFile="$(teamcity_dotnet_nunitlauncher_msbuild_task)" /> 
    <Target Name="Test" DependsOnTargets="Build"> 
    <NUnit NUnitVersion="NUnit-2.4.6" Assemblies="@(TestAssemblies)" /> 
    </Target> 
<!--RUNNING UNIT TESTS--> 

suivant Vous pouvez ajouter la condition à la cible que si la configuration est la libération et la tâche échoue, alors la construction échoue.

Je pense que cela devrait couvrir les points 1 et 3

EDIT: L'autre façon de le faire serait d'exécuter les tests nUnit en utilisant l'étape de construction pré/post dans Visual Studio, this et this peut aider.

Hope this helps

+0

Salut, mais cela ne pas utiliser le build de Visual Studio régulière veut-il? C'est à dire. les développeurs auront besoin d'installer un client pour CruiseControl, etc., puis de construire en dehors de Visual Studio, n'est-ce pas? –

1

Vous pouvez facilement y arriver en TeamCity. Vous n'avez même pas besoin d'utiliser MSBuild; TeamCity peut générer à partir du fichier de solution et peut être configuré pour exécuter des tests NUnit. Il exécute toutes les fonctions énumérées au point 2 et crée également des diagrammes de tendance et des rapports.

Questions connexes