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.