TeamCity的.NET NUnitaddin可以处理csproj文件吗?

时间:2009-11-05 11:41:34

标签: .net nunit nant teamcity csproj

要切入追逐,TeamCity .NET NUnitLauncher可以处理Microsoft csproj文件吗?

由于以下原因,我问这个问题。

我有一个NANT构建脚本。在这个脚本中,我有许多使用nunit-console.exe(随NUnit v2.5.2提供)的测试。

我的Nant构建文件中的测试示例是:

<target name="x.Commons.Tests" depends="xCore">
<exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Commons.Tests\x.Commons.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

FailOnError设置为false,nunit-console.args设置为'/ nologo'。

当我在本地机器上运行这些测试时,我得到测试输出。但是,当我指示TeamCity构建我的NAnt构建文件,并指示它处理测试目标时,我没有得到TeamCity的测试输出。我可以在日志中看到nunit-colsole.exe正在生成测试结果输出,但我没有在TeamCity仪表板中看到这一点。

阅读后,我发现一些文章表明需要额外的步骤才能将此输入输入TeamCity。因此我将测试修改为:

    <target name="x.Configuration.Tests" depends="xCore">
  <mkdir dir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Configuration.Tests\x.Configuration.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

请注意,我还确保标记包含“addins”条目。

但是,和以前一样,我可以看到测试正在运行,因为nunit-console.exe会在日志中显示其结果,但我没有输出到TeamCity。

我的问题或任何帮助的答案将不胜感激!

2 个答案:

答案 0 :(得分:1)

我们采用的方式是利用TeamCity在.csproj文件中自动获取NUnit测试的能力。

  • 首先,您需要安装MSBuild Community Tasks
  • 然后,按以下方式设置.csproj文件:

    • 在&lt; Project&gt;

      之后立即进行此操作

      &lt; Import Project =“$(MSBuildExtensionsPath)\ MSBuildCommunityTasks \ MSBuild.Community.Tasks.Targets”/&gt;

    • 创建一个ItemGroup:

      &LT;&的ItemGroup GT; &lt; TestAssembly Include =“path / to / binary.dll”/&gt; &LT; /&的ItemGroup GT;

    • 创建NUnit目标:

      &lt; Target Name =“NUnit”&gt; &lt; NUnit Assemblies =“@(TestAssembly)”/&gt; &LT; /目标&GT;

  • 然后,在TeamCity中,在项目设置的“Runner”部分中,选择 MSBuild 作为跑步者,并在目标字段中指定构建 nunit 作为目标

    目标:构建nunit

TeamCity应该在下一次构建时自动获取单元测试。

答案 1 :(得分:1)

使用

<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>

适用于NUnit版本的TeamCity Addin应与NUnit版本匹配。请检查TeamCity版本是否支持NUnit 2.5.2或下载更新的版本。