我有以下專案結構:
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 測驗?
uj5u.com熱心網友回復:
我在檔案中發現了這個:
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'
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/408117.html
標籤:
