如何在dotnet测试中运行过滤器

问题描述 投票:0回答:1

我有一个VSTS版本,如下:

enter image description here

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

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

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

    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进行测试时,情况并非如此:

enter image description here

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

a)将命令添加到VS-Test以生成代码覆盖率,与使用上述命令对dotnet相同。

要么

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

任何指针都非常感谢!

testing code-coverage xunit.net azure-pipelines-build-task reportgenerator
1个回答
2
投票

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

请参阅Filter option details

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

© www.soinside.com 2019 - 2024. All rights reserved.