Visual Studio Runner 中的 xUnit 错误消息

xUnit error messages in the Visual Studio Runner

我正在使用 xUnit 理论将相关输入分组到同一个测试中,例如:

[Theory]
[InlineData("fg00123 kj 56", "123")]
[InlineData("123", "123")]
public void NormalizeString(string input, string expectedOutput) {
    Assert.Equal(expectedOutput, MethodToTest(input));
}

但如果第一次失败,我只能看到预期输出和实际输出。我意识到我可以将 expectedOutput 更改为唯一的东西,但是测试几个都提供相同输出的输入并不是不合理的。有没有办法在visual studio testrunner中显示什么输入导致测试失败?

您可以使用Assert.True,它有一个用户消息参数:

var actualOutput = MethodToTest(input); Assert.True(expectedOutput==actualOutput, string.Format("for input {0} expected {1} but got {2}", input, expectedOutput, actualOutput));