Тестовые случаи NUnit не запускаются из унаследованного класса
У меня есть базовый тестовый класс, содержащий несколько тестовых случаев и несколько обычных тестов:
[TestFixture]
public abstract class TestBase
{
[TestCase(1)]
[TestCase(2)]
[TestCase(3)]
public void TestA(int value)
{
// Perform test
}
[Test]
public void TestB()
{
// Perform test
}
}
Эти тесты запускаются из дочерних классов, которые настраивают среду различными способами. Дочерние классы содержат только методы настройки, без тестов.
[TestFixture]
public class LocalDatabaseTest : TestBase
{
[SetUp]
public void SetUp()
{
// Set up environment to use local db
}
}
Я использую ReSharper 6.1.1000.82 для запуска всех тестов в LocalDatabaseTest, но выполняются только обычные тесты. Тесты с использованием TestCase не дают никакого результата. Если я выберу Run All on TestA в классе TestBase, будут выполнены все тесты (включая другие дочерние классы). Я использую NUnit 2.6.2.12296. Есть идеи о том, что я сделал не так?
1 ответ
Вы не сделали ничего плохого.
Если вы откроете свою тестовую DLL через NUnit, вы увидите, что все тесты выполняются успешно.
(Я только что проверил ваш код с помощью NUnit 2.6.2).
Относительно причины игнорирования параметризованных тестов на Resharper: Кажется, есть некоторая проблема с Runner теста Resharper, которая вызывает такое поведение.
Итак, я предлагаю использовать NUnit для запуска параметризованных тестов.
Кстати, Resharper 7 лучше поддерживает параметризованные тесты NUnit. И, вероятно, эта проблема не появится в последней версии Resharper.