【问题标题】:NUnit 3 test not using parameters in testcase sourceNUnit 3测试不使用测试用例源中的参数
【发布时间】:2016-03-30 15:15:09
【问题描述】:

我正在尝试使用 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);
        }
    }
}

【问题讨论】:

  • 您的测试运行情况如何?你试过控制台吗?旧版本的 R# 或非常旧的 NUnit 适配器将错误地运行测试。试试新的 NUnit 3 Visual Studio 适配器。
  • 认为你是对的 - 使用似乎不支持 3.0 的 testdriven.net。就这样吧!谢谢。
  • TestDriven.net 确实支持 NUnit 3,你需要安装 NUnitTDNet NuGet 包。

标签: c# nunit nunit-3.0


【解决方案1】:

较旧的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多