我正在尝试使用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);
}
}
}
答案 0 :(得分:0)
较旧的3rdParty跑步者,如Resharper,非常老的NUnit 2 Visual Studio适配器和其他人不能正确运行NUnit 3测试。症状通常是OneTimeSetup
未运行,或者在这种情况下,TestCaseSource
未被应用。更加繁重的是你永远不会看到的误报。
每当检查测试的行为时,您应始终使用测试框架附带的跑步者运行测试,在本例中为nunit3-console.exe
。这将告诉您测试或选定的跑步者是否有问题。
在这种情况下,使用TestDriven.NET运行测试,要求您安装NUnitTDNet NuGet package以正确运行NUnit 3测试。