如何在--gtest_filter中指定多个排除过滤器?

aby*_*s.7 76 googletest

问题是谷歌测试框架.我想根据多个排除过滤器运行除排除一些测试之外的所有测试,例如: --gtest_filter=-ABC.*:-BCD.*

Fra*_*ser 108

您可以在表单中对模式进行分组 --gtest_filter=POSTIVE_PATTERNS[-NEGATIVE_PATTERNS]

所以在这种情况下,你想要 --gtest_filter=-ABC.*:BCD.*

  • 大。我花了一段时间才知道分组的含义以及OP示例和答案之间的确切区别。注意,“-”字符是影响两个表达式的单个字符。另一方面,op在每个表达式中添加“-”字符。 (3认同)
  • 但稍微解释一下,我需要在所有负模式之前有一个“-”字符,而不是将其添加到每个过滤器中,这样会很好。我必须阅读答案 3 遍才能理解这确实是一个正确的答案(实际上 @PauloNeves 的评论有帮助) (2认同)

Gim*_*ani 14

请参阅https://blogs.msdn.microsoft.com/taxiahou/2013/07/30/the-usage-of-running-a-subset-of-tests-in-google-test-framework-gtest_filter/。你可以在那里找到一个明显的例子。

排除项由“-”号标识。您可以说多个由 : 分隔。无需重复 - 与 :.

--gtest_filter=-*str* :这将运行不包含字符串“str”的测试。

--gtest_filter=-*str1*:*str2* :这将运行不包含“str1”或“str2”的测试:

--gtest_filter=*str*:-*str1*:*str2* :这将运行包含 str 且不包含 str1 或 str2 的测试。

因此,任何后跟“-”的内容都将计入排除列表。

所以,在你的情况下,它将是 --gtest_filter=-ABC.*:BCD.*