TFS Build VS Test Runner — запускать только тесты без TestCategory

В настоящее время у меня есть около 6000+ тестов, запущенных в более чем 30+ проектах.

Некоторые из этих тестов могут выполняться только локально, поэтому они были украшены атрибутом:

TestCategory="Manual Tests" 

это также относится к любым функциональным тестам, они украшены:

TestCategory="Functional Tests" etc...

Я прочитал несколько статей MSDN и пользовательских статей по этому поводу и настроил сборку для запуска только функциональных тестов.

Test Case Filter: TestCategory=Functional Tests 
(This successfully runs only the Functional Tests)

Вопрос в том, есть ли фильтр тестовых случаев, который я мог бы использовать, который будет игнорировать как «Функциональные тесты», так и «Ручные тесты» TestCategory и запускать только те тесты, которые не были украшены атрибутом TestCategory.

Если вы использовали следующие фильтры без удовольствия:

**Test Case Filter:**

!Functional Tests|!Manual Tests
TestCategory!=Functional Tests|Manual Tests
TestCategory!=Functional Tests|!Manual Tests
TestCategory!=Functional Tests|TestCategory=Manual Tests
TestCategory!=Functional Tests||TestCategory=Manual Tests
(TestCategory!=Functional Tests)|(TestCategory=Manual Tests)
(TestCategory!=Functional Tests)||(TestCategory=Manual Tests)

Я запускаю это в Visual Studio 2012 (обновление 4) с TFS 2012 (обновление 4).

Огромное спасибо


person Daz85    schedule 30.01.2015    source источник


Ответы (2)


Исправьте проблему, используя "()" вокруг вашего фильтра. Также | is or, and & is, поэтому использование x!=y или y!=z не будет работать. Используйте & для не равных оценок.

/TestCaseFilter:"(TestCategory!=PreTest&TestCategory!=PostTest&TestCategory!=CleanUp)"

person Metaphysico    schedule 03.09.2015
comment
Скобки были это! Вот что я указал в критериях тестового фильтра TFS: (TestCategory!=Nightly&TestCategory!=Ignore). Моя цель состояла в том, чтобы запустить все модульные тесты, кроме тех, что относятся к вышеуказанным категориям. По сути, я хотел запустить все тесты, которым не присвоил категорию. - person goku_da_master; 05.03.2018

Начните с малого, а затем наращивайте... Вы только что пробовали одно выражение, скажем: TestCategory!='Функциональные тесты'

Глядя на документацию, мой первый шаг для полной команды будет: TestCategory!='Functional Tests'&TestCategory!='Manual Tests'

person sburgess123    schedule 31.01.2015
comment
Спасибо за ответ. У меня есть фильтр, установленный на функциональные тесты только для сборки TestCategory!=Functional Tests, и это работает, как и ожидалось, только это запускает все тесты с без категории и тесты с категорией = Ручные тесты - person Daz85; 03.02.2015
comment
Отлично, вы попробовали: TestCategory!='Функциональные тесты'&TestCategory!='Ручные тесты' - person sburgess123; 04.02.2015
comment
Я запускал сборку с фильтром TestCategory!='Functional Tests'&TestCategory!='Manual Tests, но, к сожалению, выполняются все тесты, независимо от категории тестов. Похоже, что фильтр игнорируется по умолчанию для запуска всех тестов. - person Daz85; 04.02.2015