我在VSTS中有一个构建,如下所示:
您可以从屏幕快照中看到一个测试步骤,即“测试并生成代码覆盖率”。它使用以下命令:
/ p:CollectCoverage = true / p:CoverletOutputFormat = cobertura / p:CoverletOutput = $(Build.SourcesDirectory)\ TestResults \ Coverage \ coverage
这允许生成代码覆盖率报告。我已经使用定义的特性(例如集成或单元)向我的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所做的相同。
OR
b)将过滤器应用于dotnet测试步骤?
任何指针都很感激!
答案 0 :(得分:2)
没有提交Test Filter criteria
用于dotnet测试步骤。但是,您可以尝试在命令行中使用参数--filter
运行dotnet测试。
使用给定的表达式过滤掉当前项目中的测试。 有关更多信息,请参见过滤器选项详细信息部分。欲了解更多 有关如何使用选择性单元测试过滤的信息和示例, 参见Running selective unit tests。