使用“ctest”运行时按标签过滤“catch”测试

使用“ctest”运行时按标签过滤“catch”测试

我目前正在使用ctest运行使用编写的测试捕获框架。我希望能够根据内部 Catch 标签过滤要运行的测试;例如,我希望能够轻松阻止任何带标签的测试[FUTURE]运行。

对于单个测试可执行文件,忽略ctest,这很简单:

myTestName '~[FUTURE]'

但我没有看到任何'~[FUTURE]'通过 向 Catch 测试传递参数的方法ctest。这应该可以 --test-command但是 (1)--test-command没有它似乎什么也做不了--build-and-test(这不是我想要的)并且 (2) 这显然一次只对一个测试有效,这也不是我想要的(我只想在ctest我的整个项目上运行)。

我可以只使用它ctest -N来获取要运行的测试的名称,然后自己运行测试,但是我不知道任何方法可以获取测试文件路径,ctest所以我必须find在所有测试名称上运行,此时我基本上是在实现我自己的测试运行器。

附言目前没有针对ctestCatch 测试框架的现有标签,而且我也没有创建它们的代表。我不太确定这里还有哪些其他标签适用。我只使用标签,cmake因为ctest它是 的一部分cmake

相关内容