2

我在 VSTS 中有一个构建,如下所示:

在此处输入图像描述

您可以从屏幕截图中看到“测试并生成代码覆盖率”的测试步骤。它使用这个命令:

/p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\coverage

这允许生成代码覆盖率报告。我已使用我定义的 Trait(例如集成或单元)将“类别”添加到我的 xUnit 测试中,以允许我在构建/发布期间过滤测试。示例是:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Xunit.Abstractions;
    using Xunit.Sdk;

    /// <summary>
    /// Decorates a test as a Unit Test, so that it runs in Continuous Integration builds.
    /// </summary>
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public sealed class IsUnitAttribute : AICategoryAttribute
    {
        /// <summary>
        /// Initializes a new instance of <see cref="IsUnitAttribute"/>
        /// </summary>
        public IsUnitAttribute() : base("Unit") { }
    }

    /// <summary>
    /// Decorates a test as an Integration Test, so that it runs in Continuous Integration builds.
    /// </summary>
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public sealed class IsIntegrationAttribute : AICategoryAttribute
    {
        /// <summary>
        /// Initializes a new instance of <see cref="IsIntegrationAttribute"/>
        /// </summary>
        public IsIntegrationAttribute() : base("Integration") { }
    }

我只知道如何在 VS-Test 步骤中应用过滤器,如下:

但不是当我使用 dotnet 进行测试时:

在此处输入图像描述

我只知道如何使用 dotnet(而不是 VS-Test)构建代码覆盖率……我想两者都做!我如何能:

a) 将命令添加到 VS-Test 以生成代码覆盖率,就像我使用上面的命令对 dotnet 所做的一样。

或者

b) 将过滤器应用于 dotnet 测试步骤?

非常感谢任何指针!

4

1 回答 1

5

没有Test Filter criteria针对 dotnet 测试步骤的文件。但是,您可以尝试使用--filter命令行中的参数运行 dotnet 测试。

请参阅过滤器选项详细信息

使用给定的表达式过滤掉当前项目中的测试。有关详细信息,请参阅过滤器选项详细信息部分。有关如何使用选择性单元测试过滤的更多信息和示例,请参阅运行选择性单元测试

于 2018-08-30T11:14:31.010 回答