Атрибут Nunit TestCase со свойством Result работает некорректно? - PullRequest
2 голосов
/ 11 февраля 2012

Итак, я написал следующий «тестовый» тест :-) для Nunit 2.6 (используйте версию 2.6.0.12035.)

    [TestCase(1, 2, Result = 3)]
    [TestCase(3, 4, Result = 7)]
    [TestCase(5, 6, Result = 11)]
    public int Add_Test(int a, int b)
    {
        return a - b;
    }

Далее я запускаю его с помощью Resharper 6.1.37.86.Решарпер показывает, что все три теста пройдены.Затем я пытаюсь запустить тест с графическим интерфейсом nunit - nunit.exe.Тесты заканчиваются странным сообщением об ошибке: «Метод имеет возвращаемое значение, не равное void».На самом деле все тесты должны провалиться с неожиданным значением результата.Эта функция работает неправильно или я что-то делаю.неправильно?Кстати, затем я пытаюсь обойтись без установленного свойства Result, и оно отлично работает с обоими бегунами:

    [TestCase(1, 2, 3)]
    [TestCase(3, 4, 7)]
    [TestCase(5, 6, 11)]
    public void Add_Test1(int a, int b, int result)
    {
        Assert.AreEqual(result, a - b);
    }

1 Ответ

1 голос
/ 14 февраля 2012

У меня такая же проблема с NUnit 2.6.0.12035, использую ли я NUnit.exe или NUnit-console.exe.

Ваш пример работает нормально с использованием NUnit.exe 2.5.10.(Я предполагаю, что Resharper использует NUnit 2.5.10, и поэтому тест проходит успешно.)

I сообщил о проблеме в дискуссионную группу NUnit.

Изменить: Моя тестовая сборка ссылалась на версию 2.5.10 NUnit.framework.dll .Если я переключусь на использование версии 2.6.0.12035, тест будет работать, как и ожидалось, с NUnit.exe и NUnit-console.exe .Держу пари, что ваша проблема такая же.

Редактировать 2: Она была отправлена ​​как ошибка и исправлена ​​в следующем выпуске .Испытатели в версии 2.6 больше не будут вызывать ошибку, если ваша библиотека модульных тестов ссылается на более старую версию Nunit.framework.dll .

...