【问题标题】:Can TeamCity's .NET NUnitaddin process csproj files?TeamCity 的 .NET NUnitaddin 可以处理 csproj 文件吗?
【发布时间】:2009-11-05 11:41:33
【问题描述】:

言归正传,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>

请注意,我还确保标签包含“插件”条目。

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

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

【问题讨论】:

    标签: .net nunit nant teamcity csproj


    【解决方案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 插件应与 NUnit 版本匹配。请检查您的 TeamCity 版本是否支持 NUnit 2.5.2 或下载更新版本。

    【讨论】:

    • 嗨 Eugene,我安装了 TeamCity v2.5.4,但我发现它没有 NUnit 2.5.2 的 nunitaddin。这是不寻常的,因为 NUnit v2.5.2 已经存在一年多了!我正在下载 TeamCity 2.5.5,希望它会有 nunitaddin 2.5.2。但是,根据您的建议,我将使用的 NUnit 版本更改为 2.5.0,我很高兴地说,然后我在 TeamCity 中显示了测试输出!感谢您的帮助!
    • 不错!似乎您将 TeamCity 4.5.x 称为“TeamCity v2.5.x”。据我所知,NUnit 2.5.2 于 2009 年 8 月 10 日发布。nunit.org/index.php?p=releaseNotes&r=2.5.2
    • Eugene,你说得对,NUnit 2.5.2 于 09 年 8 月发布。我一直对所有这些不同产品的版本感到困惑!感谢您的帮助,并继续在 JetBrains 工作;)
    【解决方案2】:

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

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

      • 之后添加它

      • 创建一个项目组:

      • 创建一个 NUnit 目标:

        目标>

    • 然后,在 TeamCity 中,在项目设置的“Runner”部分中,选择 MSBuild 作为运行器,并在 Targets 字段中同时指定 build em> 和 nunit 作为目标

      目标:构建 nunit

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

    【讨论】:

    • 为博士的回复干杯但是我使用的是 NAnt 构建运行器而不是 MSBuild,所以这个建议不适用于我的问题。这是一个令人沮丧的问题,因为我希望 TeamCity 会自动获取测试输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多