NUnit 3 测试不使用测试用例源中的参数

NUnit 3 test not using parameters in testcase source

我正在尝试使用 NUnit 3 编写一个测试,该测试采用 double[] 列表并测试扩展方法的 return。但是我无法获得将测试用例数据作为参数的测试。它总是使用空参数运行一次。

我几乎完全复制了 wiki 中的示例,所以我不确定哪里出错了。我来自 nunit 2.6,所以不习惯新的做事方式。所以这可能是非常明显的事情。

感谢任何帮助。

[TestFixture]
public class DoubleExtensionsTest
{
    [Test, TestCaseSource(typeof(DoubleExtensionsTestData), "CoordinatesData")]
    public bool IsValidCoordinatesWorksCorrectly(double[] values)
    {
        return values.IsValidCoordinates();
    }

}

public class DoubleExtensionsTestData
{
    public static IEnumerable CoordinatesData
    {
        get
        {
            yield return new TestCaseData(new[] { 51.441860d, -0.066243d }).Returns(true);
            yield return new TestCaseData(new[] { 48.856614d, 2.352222d }).Returns(true);
            yield return new TestCaseData(new[] { -1.292066d, 36.821946d }).Returns(true);
        }
    }
}

较旧的 3rdParty 运行ners,例如 Resharper、非常旧的 NUnit 2 Visual Studio 适配器和其他 运行 NUnit 3 测试不正确。症状通常是 OneTimeSetup 没有得到 运行,或者在这种情况下,TestCaseSource 没有得到应用。更麻烦的是你永远看不到的误报。

每当检查测试的行为时,您应该始终运行使用测试框架随附的运行ner 进行测试,在此案例nunit3-console.exe。这将告诉您这是您的测试问题还是您选择的 运行ner.

在这种情况下,测试 运行 使用 TestDriven.NET,这要求您正确安装 NUnitTDNet NuGet package 到 运行 NUnit 3 测试。

另一种选择是 NUnit 3 Test Adapter for Visual Studio