我有一个VSTS版本,如下:
您可以从屏幕截图中看到“测试并生成代码覆盖率”的测试步骤。它使用此命令:
/ 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进行测试时,情况并非如此:
我只知道如何使用dotnet构建代码覆盖(而不是VS-Test)...我想两个都做!我如何能:
a)将命令添加到VS-Test以生成代码覆盖率,与使用上述命令对dotnet相同。
要么
b)将过滤器应用于dotnet测试步骤?
任何指针都非常感谢!
没有针对dotnet测试步骤提交的Test Filter criteria
。但是,您可以尝试在命令行中使用参数--filter
运行dotnet测试。
使用给定表达式筛选当前项目中的测试。有关更多信息,请参阅筛选选项详细信息部分。有关如何使用选择性单元测试过滤的更多信息和示例,请参阅Running selective unit tests。