0

Je suis en train de mettre en place un système CI pour le projet de bureau VS2008/C#, rien d'extraordinaire, juste un cycle de construction/test. CI fonctionnera sous Hudson en utilisant MSBuild/MSTest, mais je n'arrive pas à décider comment faire certaines choses, peut-être pourriez-vous m'aider?MSBuild, solution VS2008 et CI - quelles sont les meilleures pratiques?

Mes options pour l'exécution du projet dans le CI sont:

  • Exécutez l'.sln directement à partir MSBuild
  • Exécutez le .csproj directement à partir MSBuild
  • Créer un projet MSBuild séparé faisant référence à la SLN ou .csproj comme une tâche MSBuild
  • Créer un projet MSBuild séparé l'importation des choses (groupes de propriété ou groupes d'articles) de la .csproj

Si je n'avais pas besoin de lancer des tests, je n'utiliserais probablement que la première option (exécutez le fichier .sln avec MSBuild). Mais j'ai besoin d'ajouter une tâche pour lancer les tests, donc je n'arrive pas à décider si je devrais ajouter la tâche/cible aux .csproj ou le faire dans un projet séparé. Une chose que je veux accomplir est que quand je change mon .sln ou l'un des .csproj, idéalement je ne devrais pas devoir toucher n'importe quoi d'autre pour pouvoir continuer à courir avec succès dans le CI.

Une autre question est en cours d'exécution autour de la MSTest - est une tâche Exec suffisante ou devrais-je écrire/utiliser une tâche MSTest (peut ne pas sembler trouver un sur le Net)

Répondre

2

La tâche de test est une tâche intégrée pour MSBuild dans .NEt 3.5 Framework, comme c'est la couverture de code. Recherchez simplement les cibles BeforeTest et CoreTest sur MSDN. Pas très difficile, il suffit d'inclure quelque chose comme:

<ItemGroup> 
     <TestContainer Include="$(OutDir)\BuildTestProject.dll" /> 
    </ItemGroup> 

    <ItemGroup> 
     <MetaDataFile Include="$(SolutionRoot)\BuildTest.vsmdi" /> 
    </ItemGroup> 

    <PropertyGroup> 
     <RunConfigFile>$(SolutionRoot)\LocalTestRun.testrunconfig</RunConfigFile> 
    </PropertyGroup> 

devrait fonctionner ..

+0

Nope, ne peut pas sembler le faire fonctionner. RunConfigFile est une propriété d'un TestToolsTask, qui fait partie de Team Foundation Build. Et TFS n'est pas dans l'image pour moi. –

+0

Ah, je ne savais pas que c'était TFBuild seulement, dans ce cas, vous devriez utiliser MSTest en appelant une tâche Exec. Devrait être beaucoup d'échantillons sur le net. –

Questions connexes