xUnit Collection Fixtures 未继承

问题描述 投票:0回答:1

我有一个 xunit 测试模式:

  • 与正在测试的类相匹配的测试类
  • 每个被测试方法的子类
  • 支持测试所需工件的夹具
[Collection("SomeFixture")]
public class SomeClass
{
  public SomeClass(SomeFixture fixture) {}

  public class MethodA: SomeClass
  {
    public MethodA(SomeFixture fixture): base(fixture) {}
    // ...
  }

  public class MethodB: SomeClass
  {
    public MethodB(SomeFixture fixture): base(fixture) {}
    // ...
  }

}

注意,子类并不直接具有

[Collection("SomeFixture")]
属性;这是遗传的。

今天,我将我的项目更新为

net8.0
,包括:

  • xunit
    从 v 2.5.0 到 2.6.3
  • xunit.runner.visualstudio
    从 v 2.5.0 到 2.5.5

在此更新后,我现在收到编译器错误:

Code: Error xUnit1041   
Description: Fixture argument 'fixture' does not have a fixture source (if it comes from a collection definition, ensure the definition is in the same assembly as the test) (https://xunit.net/xunit.analyzers/rules/xUnit1041)

通过将

Collection
属性复制到每个子类可以轻松解决此问题。然而,我有数百个这样的测试来做到这一点。

有没有办法避免繁琐的复制/粘贴来解决这个问题?

xunit
1个回答
0
投票

解决方法是回滚到 xunit 2.6.2

© www.soinside.com 2019 - 2024. All rights reserved.