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

时间:2016-03-30 15:15:09

标签: c# nunit nunit-3.0

我正在尝试使用NUnit 3来编写一个带有double []列表的测试,并测试扩展方法的返回。但我无法通过testcasedata作为参数进行测试。它始终使用null参数运行一次。

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

1 个答案:

答案 0 :(得分:0)

较旧的3rdParty跑步者,如Resharper,非常老的NUnit 2 Visual Studio适配器和其他人不能正确运行NUnit 3测试。症状通常是OneTimeSetup未运行,或者在这种情况下,TestCaseSource未被应用。更加繁重的是你永远不会看到的误报。

每当检查测试的行为时,您应始终使用测试框架附带的跑步者运行测试,在本例中为nunit3-console.exe。这将告诉您测试或选定的跑步者是否有问题。

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

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