1

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

我几乎完全复制了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);
        }
    }
}
4

1 回答 1

0

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

每当检查测试的行为时,您应该始终使用测试框架附带的运行器运行测试,在这种情况下nunit3-console.exe。这将告诉您是您的测试有问题,还是您选择的跑步者有问题。

在这种情况下,测试是使用 TestDriven.NET 运行的,这需要您安装NUnitTDNet NuGet 包才能正确运行 NUnit 3 测试。

另一个选项是NUnit 3 Test Adapter for Visual Studio

于 2016-03-31T15:08:09.123 回答