将Cake dotnet核心测试输出导出到TeamCity

Nag*_*goh 5 c# teamcity .net-core cakebuild

我正在寻找一种通过Cake构建脚本将.NET Core应用程序中的测试输出导出到TeamCity的方法。

目前,我只是在运行:

DotNetCoreTest("./src/MyTestProject");
Run Code Online (Sandbox Code Playgroud)

但是我在ITeamCityProviderDotNetCoreTest的文档中看不到任何内容

上面的代码块可以从命令行运行,但是我找不到将测试结果发布到构建服务器的方法。

希望有人能帮忙

Ada*_*rth 5

发现自己再次使用谷歌搜索这种情况,并偶然发现了我自己对另一个答案的无益评论......

基本上,您需要在 Cake 中做的就是DotNetCoreTest使用标准设置(不是 TeamCity 特有的)调用,并在您的测试项目中包含以下 NuGet 包:

  • TeamCity.Dotnet.Integration
  • TeamCity.VSTest.TestAdapter

我还配置了 Cake 构建系统模块tools\modules\packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="Cake.BuildSystems.Module" version="0.3.0" />
</packages>
Run Code Online (Sandbox Code Playgroud)

这将点亮 TC 中的测试选项卡。


Enr*_*lio 4

对于.NET Core 的 NUnit 测试运行程序,您需要显式传递--teamcity选项以使其向 TeamCity 报告测试结果(请参阅提交323fb47)。

在 Cake 脚本中,您可以使用以下ArgumentCustomization属性来做到这一点:

Task("Test")
   .Does(() =>
{
    DotNetCoreTest(
        "path/to/Project.Tests",
        new DotNetCoreTestSettings
        {
            ArgumentCustomization = args => args.Append("--teamcity")
        });
});
Run Code Online (Sandbox Code Playgroud)