NUnit: как запустить тест только с одной ролью пользователя, в то время как в TestFixture определены 3 разные роли пользователя

У меня есть класс «Регрессионный тест», в котором я определил 3 разные роли пользователя в TestFixture.

В регрессионном тесте я тестирую другие функции веб-приложений помимо основных функций. В настоящее время у меня есть 5 различных тестов, как показано ниже на скриншоте.

Теперь я хочу, чтобы первые 4 метода тестирования запускались ТОЛЬКО с adminроль пользователя и последний метод тестирования, вызываемый UserRightsследует тестировать только с hsuINTа также hsuIntRequest

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что все 5 методов тестирования будут запущены со всеми пользовательскими ролями, определенными в классе в TestFixture.

Есть ли способ, как сообщить TestMethod, с какой UserRole он должен запускать тест?

1 ответ

В NUnit основная цель TestFixture — сгруппировать вместе все тесты, требующие общей настройки. Итак, если для первых четырех тестов требуется роль пользователя admin, а последний требует запуска под двумя разными ролями, они не принадлежат одному и тому же TestFixture.

Вы можете преобразовать свои тесты в два фикстура, как показано ниже:

      [TestFixture("adminInt")]
public class FirstFixture
{
    // Your first four tests here
}

[TestFixture("hsuINT")]
[TestFixture("hsuIntRequest")]
public class SecondFixture
{
    // Your last test here
}

Конечно, первой фикстуре не нужен параметр... вы можете жестко закодировать роль, если хотите.

Если для разделения прибора требуется дублирование большого количества кода настройки (который вы не показываете в вопросе), вы можете получить каждый класс из общей базы, в которой есть настройка. В этом случае все три класса должны иметь параметр, но только два производных класса должны иметь атрибут TestFixture.

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