Основной класс 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()
{
}
}
}