The question is about google-test framework.
I want to run all tests excluding some according to multiple exclusion filters, like:
--gtest_filter=-ABC.*:-BCD.*

- 13,882
- 11
- 56
- 100
2 Answers
You group the patterns in the form --gtest_filter=POSTIVE_PATTERNS[-NEGATIVE_PATTERNS]
So in this case, you want --gtest_filter=-ABC.*:BCD.*

- 74,704
- 20
- 238
- 215
-
14Great. It took me a while what the grouping meant and the exact difference between the example of the OP and the answer. Notice the '-' character is a single character that affects both expressions. The op on the other hand adds the '-' character to each expression. – Paulo Neves Dec 24 '18 at 12:36
-
2But a bit of explanation that I need a SINGLE '-' character before all negative patterns instead of adding it to each filter would be nice. I had to read the answer 3 times to understand that it is indeed a correct answer (and actually a @PauloNeves 's comment helped) – avtomaton Sep 16 '21 at 13:33
See https://blogs.msdn.microsoft.com/taxiahou/2013/07/30/the-usage-of-running-a-subset-of-tests-in-google-test-framework-gtest_filter/. You can find a clear example there.
Exclusions are identified by '-' sign. You can say multiple seperated by :. no need of repeating - with :.
--gtest_filter=-*str*
:This will run tests that don't contain string "str".
--gtest_filter=-*str1*:*str2*
:This will run tests that don't contain either "str1" or "str2":
--gtest_filter=*str*:-*str1*:*str2*
:This will run tests that contain str and that do not contain either str1 or str2.
So, anything followed by '-' will be counted for exclusion list.
So, in your case it will be --gtest_filter=-ABC.*:BCD.*

- 1,318
- 13
- 23