Как запустить набор тестов nUnit с двумя разными настройками? - PullRequest
4 голосов
/ 05 марта 2010

(извините за непонятный заголовок, пожалуйста, отредактируйте его, если можете придумать лучший)

Я хочу запустить одни и те же тесты для двух разных хранилищ данных, я могу создать хранилища данных в методе Setup ().

Итак, я должен иметь суперкласс, который содержит все тесты и абстрактный метод SetUp(), а затем иметь подкласс для каждого хранилища данных?

Или есть лучший способ?

См. " Сравнение строк без учета регистра с linq-to-sql и linq-to-objects " для того, что я тестирую.

1 Ответ

12 голосов
/ 08 марта 2010

Вот простое решение:

Все ваши контрольные примеры находятся в абстрактном классе, например, в классе TestBase. Например:

public abstract class TestBase
{
    protected string SetupMethodWas = "";

    [Test]
    public void ExampleTest()
    {
        Console.Out.WriteLine(SetupMethodWas);    
    }

    // other test-cases
}

Затем вы создаете два подкласса для каждой настройки. Таким образом, каждый подкласс будет запускаться индивидуально с помощью метода it-setup, а также всех унаследованных тестовых методов.

[TestFixture]
class TestA : TestBase
{
    [SetUp]
    public void Setup()
    {
        SetupMethodWas = "SetupOf-A";    
    }
}
[TestFixture]
class TestB : TestBase
{
    [SetUp]
    public void Setup()
    {
        SetupMethodWas = "TestB";
    }
}

Это прекрасно работает. Однако для более простых тестов параметризованные тесты являются лучшим решением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...