Azure Pipelines 将 xUnit InlineData 计为一个测试而不是多个
Azure Pipelines counts xUnit InlineData as one test instead of many
在我们的 Azure Pipelines 管道中,我们有采用 InlineData 参数的 .NET Core xUnit 测试方法。测试 运行 包含所有测试方法,并在其控制台输出中正确报告每个 InlineData 实例作为测试 运行。但是,Azure Pipelines 报告的测试计数较低,因为它将 [理论] 测试计为一个测试(而不是对每个 InlineData 实例进行一个测试)。
如何让 Azure Pipelines 将所有 InlineData 实例报告为测试?
例如,这是作业输出。
测试作业报告 9 个测试。 9 个测试包括两个 [Theory] 方法,每个方法有两个 InlineData:
Azure Pipelines 仅报告 7 个而不是预期的 9 个测试:
我用最新版本的 dotnet core sdk 重现了同样的问题 ie. SDK Version: 3.1.402
。
当我使用 3.1.101
版本的 dotnet 核心 sdk 时。测试摘要显示了正确的测试计数。
您可以尝试在管道顶部添加 Use .NET Core 任务,并将 .NET Core SDK 的 version
指定为 3.1.101
。见下文:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 3.1.101'
inputs:
version: 3.1.101
在我们的 Azure Pipelines 管道中,我们有采用 InlineData 参数的 .NET Core xUnit 测试方法。测试 运行 包含所有测试方法,并在其控制台输出中正确报告每个 InlineData 实例作为测试 运行。但是,Azure Pipelines 报告的测试计数较低,因为它将 [理论] 测试计为一个测试(而不是对每个 InlineData 实例进行一个测试)。
如何让 Azure Pipelines 将所有 InlineData 实例报告为测试?
例如,这是作业输出。
测试作业报告 9 个测试。 9 个测试包括两个 [Theory] 方法,每个方法有两个 InlineData:
Azure Pipelines 仅报告 7 个而不是预期的 9 个测试:
我用最新版本的 dotnet core sdk 重现了同样的问题 ie. SDK Version: 3.1.402
。
当我使用 3.1.101
版本的 dotnet 核心 sdk 时。测试摘要显示了正确的测试计数。
您可以尝试在管道顶部添加 Use .NET Core 任务,并将 .NET Core SDK 的 version
指定为 3.1.101
。见下文:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 3.1.101'
inputs:
version: 3.1.101