我在 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 测试步骤?
非常感谢任何指针!