2010-09-10 12 views
0

J'utilise Visual Studio Team Build. Ma compilation compile des choses et exécute ensuite des tests automatisés. Si les tests échouent, la construction se termine avec le statut "Partiellement réussi". Lorsque cela se produit, le seul fichier dans le répertoire de dépôt est le journal de construction. Il semble que team build copie uniquement le contenu du dossier Binaries dans le répertoire de dépôt si la construction se termine par "Succeeded". Mais, j'ai vraiment besoin de voir les fichiers du répertoire Binaries pour m'aider à diagnostiquer pourquoi la construction n'a que partiellement réussi.Comment puis-je obtenir des builds d'équipe partiellement réussis en sortie dans le répertoire de dépôt?

Existe-t-il un moyen de forcer la création d'une équipe à écrire dans le répertoire de dépôt lorsque la génération est "Partiellement réussie"?

+0

quelle version de TFS utilisez-vous? utilisez-vous le workflow/définition de build standard/personnalisé? –

+0

erm TFS 2008. Je suppose que c'est la norme parce que je ne me souviens pas de personnaliser quelque chose. Sauf si vous voulez dire ... J'ai ajouté quelques cibles via dépend des propriétés à mon TFSBuild.proj –

Répondre

0

Je l'ai forcé en ajoutant ce qui suit à mon TFSBuild.proj. Cela ne me semble pas très bien.

<PropertyGroup> 
    <CoreTestDependsOn>$(CoreTestDependsOn);SmokeTest</CoreTestDependsOn> 
</PropertyGroup> 

<Target Name="SmokeTest"> 

    <!-- Exec stuff here to run some tests, output exit code to property SmokeTestExitCode. Use ContinueOnError="true" --> 

    <!-- Still create drop folder even if build ending with status "Partially Succeeded" --> 
    <CallTarget Condition="'$(IsDesktopBuild)'=='false' And '$(SmokeTestExitCode)'!='0'" Targets="DropBuild"/> 

    <!-- Now, after creating drop folder, raise error to cause "Partially Succeeded" instead of "Succeeded" --> 
    <Error Condition="'$(SmokeTestExitCode)'!='0'" Text="Smoke Test Failed with exit code=$(SmokeTestExitCode)"/> 
</Target> 
0

Ceci est étrange. Le comportement par défaut est que la sortie de génération est copiée dans l'emplacement de dépôt au cas où les tests échoueraient. Pouvez-vous voir dans le journal de construction pourquoi il réussit partiellement?

+0

Il réussit partiellement parce que la cible de test déclenche une erreur, mais la cible de compilation réussit ... J'espère que cela a du sens. –