c# - 在 Linux 上时 Dotnet 测试忽略过滤器

标签 c# .net-core xunit circleci dotnet-test

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

命令是:

dotnet 测试 --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。这不是完美的解决方案,但解决了我眼前的问题。

关于c# - 在 Linux 上时 Dotnet 测试忽略过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56270478/

相关文章:

c# - .ASPX 上的自定义用户控件和友好的属性项集合(类似于 ListBox 和 ListItems,但带有 L​​ist<Class>)

c# - 使用 ClickOnce 设置文件关联

c# - 我已经开始学习 Entity Framework ,并面临问题。我有一个模型类,但无法建立 Entity Framework 连接

asp.net - 我如何获取错误 500 的日志/调试?

c# - 如何模拟返回值?

c# - 如何在随机字符串中获取日期时间?

razor - 如何将动态javascript注入(inject)asp .net core razor View

azure - 是否可以将 .net core Web api 发布到 azure 函数?

c# - 如何通过代码执行 XUnit 测试

c# - 如何使用 FakeItEasy 断言未调用方法