Тест NUnit 3 не использует параметры в исходном коде теста

Я пытаюсь использовать NUnit 3 для написания теста, который принимает список double[] и проверяет возврат метода расширения. Но я не могу заставить тест принимать данные testcase в качестве параметров. Он всегда запускается один раз с нулевым параметром.

Я почти точно скопировал пример из вики, так что не знаю, где я ошибаюсь. Я исхожу из 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);
        }
    }
}

person Bonnotbh    schedule 30.03.2016    source источник
comment
Как вы проводите свои тесты? Консоль пробовали? Старые версии R# или очень старый адаптер NUnit будут запускать тесты неправильно. Попробуйте новый адаптер NUnit 3 Visual Studio.   -  person Rob Prouse    schedule 30.03.2016
comment
думаю, вы правы - используя testdriven.net, который, похоже, не поддерживает 3.0. Это будет так! Спасибо.   -  person Bonnotbh    schedule 30.03.2016
comment
TestDriven.net поддерживает NUnit 3, вам необходимо установить пакет NuGet NUnitTDNet.   -  person Rob Prouse    schedule 31.03.2016


Ответы (1)


Старые сторонние средства запуска, такие как Resharper, очень старые адаптеры NUnit 2 Visual Studio и другие, не выполняют корректно тесты NUnit 3. Симптомы обычно таковы: OneTimeSetup не запускается или, в данном случае, TestCaseSource не применяется. Еще более обременительными являются ложные срабатывания, которые вы никогда не увидите.

Всякий раз, проверяя поведение своих тестов, вы должны всегда запускать свои тесты с помощью средства запуска, поставляемого с тестовой средой, в данном случае nunit3-console.exe. Это скажет вам, связана ли проблема с вашими тестами или с выбранным вами бегуном.

В данном случае тесты выполнялись с использованием TestDriven.NET, для чего требуется установить пакет NuGet NUnitTDNet для корректного запуска тестов NUnit 3.

Другой вариант — тестовый адаптер NUnit 3 для Visual Studio.

person Rob Prouse    schedule 31.03.2016