为什么 xunit.net 会说“不支持指定的方法”

Wal*_*lly 5 xunit.net

当我尝试运行 xUnit.net 测试时,出现以下错误:

[xUnit.net 00:00:00.63]     xunit.UnitTest1.TestTheAnswer [FAIL]
  Failed xunit.UnitTest1.TestTheAnswer [1 ms]
  Error Message:
   System.NotSupportedException : Specified method is not supported.
Run Code Online (Sandbox Code Playgroud)

什么可能导致此错误?

Chr*_*tte 7

长话短说:public


因此,此错误的另一个原因是属性/字段/方法必须是public,这可能并不明显。

弹出帮助仅提到该成员必须是static并且返回值必须与IEnumerable<object[]>. 它没有提及访问修饰符。正如问题中所述,运行时的错误消息在这方面也没有帮助。

(我使用的是xunit2.4.1 版本,并尝试使用一个private属性,但失败了。通过创建 property 解决了public。)


Wal*_*lly 0

就我而言,我在MemberData属性参数中出现了拼写错误。这是一个例子:

public static object[][] MyTestIntegers =>
    new[] { 0, 1, 42, 9999999 }
        .Select(i => new object[] { i })
        .ToArray();

[Theory]
[MemberData("MyTestIntgers")]
public void TestTheAnswer(int i) =>
    Assert.NotEqual(42, i);
Run Code Online (Sandbox Code Playgroud)

[MemberData("MyTestIntgers")]应该[MemberData("MyTestIntegers")]

  • 你应该能够使用`nameof`来回避这个...... (5认同)