Пропустить юнит-тест, если пользователю не разрешено это делать - PullRequest
2 голосов
/ 24 ноября 2011

Мы создаем наши модульные тесты с помощью интегрированных модульных тестов MS Visual Studio 10.

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

Теперь я хочу проверитьэти функции с модульными тестами. Когда я запускаю VS как администратор, все хорошо. Но у нас также есть автоматизированная система сборки (Jenkins), которая запускает модульные тесты с обычным пользователем. Вопрос в том, есть ли хороший способ (например,атрибут метода), чтобы пропустить тесты, когда пользователь, выполняющий модульные тесты, не имеет прав для их запуска.

РЕДАКТИРОВАТЬ 1

Изменение конфигурации на основе целевых машинменя не совсем устраивает. Я только что нашел TestClassExtensionAttribute Class и несколько хороших учебник как это реализовать.Сейчас я попытаюсь пойти по этому пути, поскольку при разработке тестов это намного проще.

Ответы [ 2 ]

5 голосов
/ 24 ноября 2011

Вы можете использовать TestCategories в своем тесте.Просто пометьте свой тест с помощью:

[TestCategory("Admin") TestMethod()]
public Void DebitTest()
{
}

И затем исключите категорию:

mstest /testcontainer:MyTestprojectName.dll /category:"!Admin"

Вы можете использовать несколько категорий для каждого теста

Подробнее здесь: http://msdn.microsoft.com/en-us/library/dd286683.aspx

0 голосов
/ 24 ноября 2011

Вы также можете поместить все соответствующие тесты в список тестов, а затем просто запустить этот список, например:

http://msdn.microsoft.com/en-us/library/ms182461(v=vs.80).aspx

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