2015-11-23 7 views
5

Есть способ настроить Teamcity, чтобы игнорировать некоторые тесты? Мне нужно запускать эти тесты только локально, когда они запускаются в Teamcity, их нужно игнорировать.Как настроить Teamcity, чтобы игнорировать некоторые тесты

Я использую nunit.

Это может быть директива, атрибут и т.д.

+0

http://stackoverflow.com/questions/15618225/teamcity-re-running-a-specific-build-step – MethodMan

ответ

10

Вы можете сделать это путем добавления тестов категории для ваших тестов.

[Category("LocalOnly")] 
[Test] 
public void MyLocalTest() 
{ 
    // Code omitted for brevity 
} 

Вы можете добавить эту категорию к NUnit бегуна «категории NUnit исключить:» поле в шаге TeamCity сборки.

NUnit categories exclude: LocalOnly 

The TeamCity NUnit ignore category field

2

TeamCity 9,1 supports NUnit 3 и открывает many other possibilities для выбора тестов для выполнения или фильтровать их. Я бы рекомендовал использовать --where=EXPRESSION, что позволяет использовать Test Selection Language. Теперь вы можете использовать даже регулярные выражения для указания тестов, которые вы хотите запустить или исключить.

Примеры

Вы хотите исключить только один тест?

--where="method != 'TestName'" 

Вы хотите исключить только один тест? Не помню название точно, но что-то с «BuggyMethod» (~ означает, что регулярное выражение участвует):

--where="method !~ 'BuggyMethod'" 

Выполнить все тесты определенные в одном классе:

--where="class == 'My.Namespace.ClassName'" 

Forget полное пространство имен ? Это больше не проблема - используйте регулярное выражение:

--where="class =~ 'ClassName'" 

Вы также можете комбинировать эти выражения для достижения желаемого эффекта. Выполнить все тесты для класса, но Exlude все методы, которые содержат «BuggyMethod»:

--where="class =~ 'ClassName' and method !~ 'BuggyMethod'" 

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

Смежные вопросы