2016-03-30 2 views
1

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

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

Как вы проводите тесты? Вы пробовали консоль? Старые версии R # или очень старый адаптер NUnit будут запускать тесты некорректно. Попробуйте новый адаптер NUnit 3 Visual Studio. –

+0

думаю, что вы правы - с помощью testdriven.net, который, похоже, не поддерживает 3.0. Вот и все! Благодарю. – Bonnotbh

+0

TestDriven.net поддерживает NUnit 3, вам необходимо установить пакет NUnitTDNet NuGet. –

ответ

0

Старого 3rdParty бегуны, такие как Resharper, очень старые NUnit 2 Визуальные адаптеры Студийных и другие не работают Nunit 3 теста правильно. Симптомами обычно являются такие вещи, как OneTimeSetup, не получающие пробег, или в этом случае TestCaseSource не применяется. Еще более обременительные ложные срабатывания, которые вы никогда не увидите.

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

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

Другой вариант: NUnit 3 Test Adapter for Visual Studio.

Смежные вопросы