如何使用Eclipse处理Boost.Test输出

时间:2010-03-22 10:27:24

标签: c++ unit-testing eclipse-cdt boost-test

我正在使用Eclipse CDT和Boost.Test(使用Boost.Build)。 我希望Eclipse解析在构建期间运行测试套件期间生成的Boost.Test的输出 有谁知道如何实现这一目标? 提前致谢

3 个答案:

答案 0 :(得分:15)

转到窗口>喜好。在首选项对话框中,选择C / C ++>从选项树构建。在错误解析器下,单击“添加...”在新对话框中,将“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

请注意,新解析器不会自动在现有项目中使用。要为现有项目启用解析器,请转到Project>属性,C / C ++生成项目,错误分析器选项卡。如果新添加的解析器不在列表中,请单击“恢复默认值”,它现在应该可用。

答案 1 :(得分:2)

还有一个很好的插件叫做cdt c / c ++ tests runner,它支持Google测试,升级测试和qt测试。

您可以通过以下链接找到说明:

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

我已经使用了一段时间,并发现它高效而美观。它具有类似Java的JUnit插件的功能。

答案 2 :(得分:0)

我遇到了同样的问题,我的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