Тестовые случаи 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.

Другие вопросы по тегам