如何将部分成功的团队构建仍输出到drop目录

时间:2010-09-10 10:39:52

标签: tfs tfsbuild

我正在使用Visual Studio Team Build。我的构建编译东西,然后运行一些自动化测试。如果测试失败,则构建以状态“部分成功”结束。发生这种情况时,drop目录中唯一的文件是构建日志。如果构建以“成功”结束,团队构建似乎只将Binaries文件夹的内容复制到drop目录。

但是,我真的需要查看Binaries目录中的文件来帮助我诊断构建仅部分成功的原因。

当构建只是“部分成功”时,有没有办法强制团队构建写入drop目录?

2 个答案:

答案 0 :(得分:0)

这很奇怪。默认行为是在测试失败时将构建输出复制到放置位置。你能在构建日志中看到它为什么会部分成功吗?

答案 1 :(得分:0)

我通过在TFSBuild.proj中添加以下内容来强制它。虽然它感觉不是很整洁。

<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>