TeamCity构建不运行新的XUnit测试

时间:2010-06-22 13:11:16

标签: git teamcity xunit.net

我正在使用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)?

希望有意义,谢谢

1 个答案:

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

需要注意的是,我们的项目正在将后期构建事件中的自我复制到“知名”目录,但该目录是相对的。

希望这有帮助。