En arrière-plan: Je tente d'implémenter l'intégration de Cruisecontrol (2.8.4), MSBuild et MSTest sur mon projet actuel (.Net 4.0 et VS 2010). J'utilise MSBuild pour construire ma solution et a ajouté un MSTest comme AfterBuild cible dans mes fichiers .csproj pour exécuter mes tests unitaires:MSTest non exécuté lors de l'exécution par Cruisecontrol schedule
<Target Name="AfterBuild" DependsOnTargets="GetTestAssemblies" >
<Message Text="Normal Test" />
<Exec Command="del $(MSTestResultsFile)" ContinueOnError="true" />
<Exec WorkingDirectory="$(WorkingDir)" Command="MsTest @(TestAssemblies->'%(TestContainerPrefix)%(FullPath)',' ') /noisolation /resultsfile:$(MSTestResultsFile)" />
<Message Text="Normal Test Done" />
J'ai configuré cruisecontrol.config utiliser MSBuild, à savoir :
<schedule interval="300">
<exec command="cmd.exe"
workingdir="C:\CruiseControl\projects\Framework"
args="msbuild Solution.sln" />
</schedule>
Quand je lance la construction de l'invite de commande par exemple: cmd.exe:
msbuild <projectname>.sln
, la La solution et les projets se construisent correctement, les tests unitaires s'exécutent et sortent les résultats au /resultsfile:$(MSTestResultsFile)
spécifié.
Mon problème est lorsque la commande dans la planification cruisecontrol est exécutée, la construction (MSBuild) a réussi, mais mon MSTest: /resultsfile:$(MSTestResultsFile)
est vide. Il semble que les tests unitaires n'aient pas été exécutés du tout.
Je ne sais pas pourquoi cela se produit? Toute aide serait appréciée!