[英]Run all catch2 tests in one compile unit without tag definition
我有以下項目結構:
test_main.cc
#define CATCH_CONFIG_MAIN
#include "catch2.hpp"
測試1.cc
#include "catch2.hpp"
TEST_CASE("test1", "[test1]") {
REQUIRE(1 == 1);
}
測試2.cc
#include "catch2.hpp"
TEST_CASE("test2", "[test2]") {
REQUIRE(2 == 2);
}
現在,我可以在測試可執行文件的運行時使用命令行選項test1
運行所有測試,例如test1
。
我通常用相同的標簽在一個文件中標記所有測試,因為我使用一個文件來組合同一主題的所有測試。 因此,使用文件和標簽違反了DRY
原則。
我的問題是有沒有辦法運行在一個文件中定義的所有 catch2 測試?
我在文檔中發現了這個:
Catch2/command-line.md at devel · catchorg/Catch2 · GitHub
文件名作為標簽
-#, --filenames-as-tags
當使用此選項時,每個測試都會被賦予一個附加標簽,該標簽由在其中找到的非限定文件名組成,任何擴展名都被剝離,並以
#
字符為前綴。因此,例如,文件
~\Dev\MyProject\Ferrets.cpp
中的測試將被標記為[#Ferrets]
。
看起來它有效,所以現在只需根據該標簽過濾測試。
...
-# [#somefile] Matches all tests from the file 'somefile.cpp'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.