我正在使用TeamCity 5和Git VCS以及Visual Studio 2010 SLN构建运行器。
我的解决方案有一个包含许多XUnit 1.5测试的类库proj。此项目上的post build事件运行测试
$(SolutionDir)libs \ XUnit-1.5 \ xunit.console.exe $(SolutionDir)MyTestProj \ $(OutDir)\ MyTestProj.dll
这适用于在我的开发机器上运行所有测试,并在TeamCity构建代理上运行良好。
但是,我最近在这个项目中添加了一个新的XUnit测试函数,将它提交给github,这是由TeamCity选择并运行了一个构建版本。但新的测试没有包括在运行中。
看来源被检出到不同的目录(例如c:\ checkedoutsource)到我的git仓库(c:\ my_source),当SLN构建运行器构建我的解决方案时,post build事件'运行测试'的目标是c:\ checkedoutsource \ bin \ debug \ MyTestProj.dll而不是c:\ my_source \ bin \ debug \ MyTestProj.dll
任何人都有任何关于如何让TeamCity构建我的测试项目并针对新创建的测试程序集运行post build事件的建议? (不编写mahoosive MSBuild脚本文件)。
即。是否可以在构建运行器中设置可视工作室变量,例如$(SolutionDir)?
希望有意义,谢谢
答案 0 :(得分:1)
在我们的项目中,我们在* .msbuild文件中运行来自单独目标的测试:
<Project defaulttargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile="Library\xUnit\xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit"/>
<Target Name="Build">
<MSBuild Projects="MyProject.sln" Properties="Configuration=Release"/>
</Target>
<Target Name="RunTests">
<xunit assembly="Tests\Output\MyProject.Tests.dll" />
</Target>
</Project>
我们将TeamCity配置为执行两个目标:构建, RunTests 。
需要注意的是,我们的项目正在将后期构建事件中的自我复制到“知名”目录,但该目录是相对的。
希望这有帮助。