Основной класс Nunit с общими тестами

Я использую nunit для выполнения некоторых тестов для некоторых классов.

Существует несколько операций, которые являются общими для всех тестовых классов, но требуют использования разных параметров.

Итак, я добавил тесты в базовый класс и виртуальные методы в базовом классе для предоставления параметров.

В производных тестовых классах я переопределяю виртуальные методы для предоставления определенных параметров для тестов в базовом классе.

Теперь моя проблема в том, что я хочу, чтобы тесты в базовом классе выполнялись только из производных классов. В настоящее время я использую атрибут ignore в базовом классе для игнорирования тестов, но это вызывает некоторые предупреждения при запуске тестов и существует политика, которая не позволяет мне отправлять изменения в svn, если есть несколько игнорируемых тестов.

Итак, как я могу запускать тесты из базового класса в производных классах, не используя атрибут ignore в базовом классе.

Ответ 1

Вы должны иметь возможность отмечать ваш базовый класс как абстрактный, это остановит nunit, запускающий тесты в этом классе, что означает, что вам больше не нужен атрибут ignore.

namespace MyTests
{
    [TestFixture]
    public abstract class BaseTestClass
    {
        [Test]
        public void CommonTest()
        {

        }
    }

    [TestFixture]
    public class TestClass1 : BaseTestClass
    {
        [Test]
        public void OtherTest1()
        {

        }
    }

    [TestFixture]
    public class TestClass2 : BaseTestClass
    {
        [Test]
        public void OtherTest2()
        {

        }
    }
}