我正在使用Visual Studio Team Build。我的构建编译东西,然后运行一些自动化测试。如果测试失败,则构建以状态“部分成功”结束。发生这种情况时,drop目录中唯一的文件是构建日志。如果构建以“成功”结束,团队构建似乎只将Binaries文件夹的内容复制到drop目录。
但是,我真的需要查看Binaries目录中的文件来帮助我诊断构建仅部分成功的原因。
当构建只是“部分成功”时,有没有办法强制团队构建写入drop目录?
答案 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>