簡體   English   中英

如何使用 Eclipse 處理 Boost.Test 輸出

[英]How to process Boost.Test output with Eclipse

我正在使用 Eclipse CDT 和 Boost.Test(帶有 Boost.Build)。 我希望 Eclipse 解析在構建期間運行測試套件期間生成的 Boost.Test 輸出。
有誰知道如何實現這一目標? 提前致謝

轉到窗口 > 首選項。 在首選項對話框中,從選項樹中選擇 C/C++ > Build。 在錯誤解析器下,單擊“添加...” 在新對話框中,將“Regex Error Parser”替換為“Boost Unit Test Error Parser”。

在“錯誤解析器選項”窗格中,添加以下行。 我不能保證這些規則能捕獲 boost 單元測試的所有可能的輸出,但到目前為止它們對我有用,我們以后總是可以添加更多:

Severity | Pattern                                          | File | Line | Description
Error    | (.*)\((\d*)\): ((fatal )?error in ".*":.*)       | $1   | $2   | $3
Error    | \*\*\* (\d* failures detected in test suite ".*")|      |      | $1
Info     | (.*)\((\d*)\): (last checkpoint)                 | $1   | $2   | $3

請注意,新的解析器不會在現有項目中自動使用。 要為現有項目啟用解析器,請轉到“項目”>“屬性”、“C/C++ 生成項目”、“錯誤解析器”選項卡。 如果新添加的解析器不在列表中,請單擊“恢復默認值”,它現在應該可用。

還有一個不錯的插件叫做cdt c/c++ tests runner,支持谷歌測試、boost測試和qt測試。

您可以在以下鏈接中找到說明:

https://github.com/xgsa/cdt-tests-runner/wiki/Tutorial

我已經使用它一段時間了,發現它既高效又好用。 它具有像 Java 的 JUnit 插件這樣的功能。

我的 IDE (gedit) 遇到了同樣的問題,無法識別 Boost.Test 的輸出格式(由於某種原因,它與 gnu 和 clang 輸出不兼容)。

您可以通過將其粘貼到您的測試中來以編程方式更改輸出格式:

#include<boost/test/output/compiler_log_formatter.hpp>
struct gedit_config{
    struct formatter : boost::unit_test::output::compiler_log_formatter{
        void print_prefix(std::ostream& out, boost::unit_test::const_string file, std::size_t line){
            out<< file <<':'<< line <<": ";
        }
    };
    gedit_config(){boost::unit_test::unit_test_log.set_formatter(new formatter);}
};
BOOST_GLOBAL_FIXTURE(gedit_config);

(原答案在這里: https : //stackoverflow.com/a/64619245/225186

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM