Testing 如何在dotnet测试上运行过滤器
我有一个内置的VST,如下所示: 您可以从屏幕截图中看到“测试并生成代码覆盖率”的测试步骤。它使用以下命令: /p:CollectCoverage=true/p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\Coverage 它允许生成代码覆盖率报告。我已经用我定义的特性(如集成或单元)将“类别”添加到我的xUnit测试中,以允许我在构建/发布期间过滤测试。例如:Testing 如何在dotnet测试上运行过滤器,testing,code-coverage,xunit.net,azure-pipelines-build-task,reportgenerator,Testing,Code Coverage,Xunit.net,Azure Pipelines Build Task,Reportgenerator,我有一个内置的VST,如下所示: 您可以从屏幕截图中看到“测试并生成代码覆盖率”的测试步骤。它使用以下命令: /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") { }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用Xunit.抽象;
使用Xunit.Sdk;
///
///将测试装饰为单元测试,以便它在连续集成构建中运行。
///
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
公共密封类IsUnitAttribute:AICategoryAttribute
{
///
///初始化的新实例
///
public IsUnitAttribute():基(“单位”){}
}
///
///将测试装饰为集成测试,以便它在连续集成构建中运行。
///
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
公共密封类集成属性:AICategoryAttribute
{
///
///初始化的新实例
///
公共IsIntegrationAttribute():基(“集成”){}
}
我只知道如何在VS测试步骤中应用过滤器,如下所示:
但当我使用dotnet进行测试时,情况并非如此:
我只知道如何使用dotnet(而不是VS-Test)构建代码覆盖率……我想两者兼而有之!我如何:
a) 将命令添加到VS测试以生成代码覆盖率,与我使用上面的命令对dotnet所做的相同
或
b) 是否将筛选器应用于dotnet测试步骤
非常感谢任何指点 没有针对dotnet测试步骤的
测试筛选条件
。但是,您可以尝试使用命令行中的参数--filter
运行dotnet测试
请看
使用给定表达式筛选出当前项目中的测试。
有关详细信息,请参见“过滤器选项详细信息”部分。更多
有关如何使用选择性单元测试筛选的信息和示例,
看
dotnet测试步骤没有
测试筛选条件
字段。但是,您可以尝试使用命令行中的参数--filter
运行dotnet测试
请看
使用给定表达式筛选出当前项目中的测试。
有关详细信息,请参见“过滤器选项详细信息”部分。更多
有关如何使用选择性单元测试筛选的信息和示例,
看
使用命令--filter似乎可以工作,但是当我尝试在VSTest(filter=Unit)中工作的命令时,它找不到我的单元测试:-\n知道为什么会这样吗?--filter后面的命令是否应该不同于“=Unit”?我也试过“=IsUnit”,但没有什么乐趣。@RobMcCabe好吧,它们有不同的语法,请参阅for dotnet test。下面是一个在dotnet测试中使用
--filter
的示例供您参考:对于其他想要在Xunit中对Category name进行筛选的人,这是一个对我有效的参数:--filter“Category=Unit”使用命令--filter似乎可以工作,但当我尝试在VSTest(filter=Unit)中工作的命令时,它找不到我的单元测试:-\n知道为什么会这样吗?--filter后面的命令是否应该不同于“=Unit”?我也试过“=IsUnit”,但没有什么乐趣。@RobMcCabe好吧,它们有不同的语法,请参阅for dotnet test。这里有一个例子,可以使用dotnet测试中的--filter
作为参考:对于任何想在Xunit中对Category name进行筛选的人来说,这是一个对我有效的参数:--filter“Category=Unit”