Linux 时 Dotnet 测试忽略过滤器

Dotnet test ignoring filter when on Linux

我正在使用 xunit,在我的一些测试中设置了特征属性。当 运行ning dotnet test 我试图通过这些特征进行过滤。我在我的 Windows 机器上本地运行良好,但是当我 运行 在我的 CI 容器上执行相同的命令时,它不会过滤我的测试。

命令为:

dotnet test --filter Category=Integration

我正在使用 CircleCI 和容器 mcr.microsoft.com/dotnet/core/sdk:2.2

当我通过 SSH 连接到盒子并尝试 运行 执行命令时,它只是 运行 所有测试。

dotnet --info 来自容器:

.NET Core SDK (reflecting any global.json):
 Version:   2.1.700
 Commit:    c2ef055a0f

Runtime Environment:
 OS Name:     debian
 OS Version:  9
 OS Platform: Linux
 RID:         debian.9-x64
 Base Path:   /usr/share/dotnet/sdk/2.1.700/

Host (useful for support):
  Version: 2.1.11
  Commit:  d6a5616240

.NET Core SDKs installed:
  2.1.700 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

我已经设法解决了我的问题。它似乎是 16.1.0 SDK 版本(决定 vstest 的版本)的错误。因为这个问题对我来说只是 CI,所以我将我正在使用的容器固定到

mcr.microsoft.com/dotnet/core/sdk@sha256:d0a71e1312be2618f320a7b7cc6d7423af3810542b3ffd35438108800ecfb958

其中包含 16.0.1 SDK。这不是完美的解决方案,但解决了我眼前的问题。