栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Jenkins中的xUnit插件进行Boost单元测试不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Jenkins中的xUnit插件进行Boost单元测试不起作用

错误是因为没有由生成的输出文件

boost::test
。需要使用正确的选项来调用测试脚本:

unit_test --report_level=detailed --report_format=xml 2> xunit.xml

不幸的是,boost :: test生成的XML输出文件的格式不正确(请参阅:SO转换boost ::
test日志和XUnit插件的Boost用户帮助)

JUnit插件期望XML测试输出采用以下格式:

<testsuites>  <testsuite time="0.0000" timestamp="0.000" errors="0" failures="0" tests="13" hostname="localhost" name="my_test_suite">    <testcase id="65536"  name="test_case_1" time="0.0000" />    <testcase id="65537"  name="test_case_2" time="0.0000" />    <testcase id="65538"  name="test_case_3" time="0.0000" />  </testsuite></testsuites>

有两种解决方法,例如:

  1. 通过以下方式转换XML输出
    boost::test
  2. 直接自定义的输出,
    boost::test
    以便产生正确的格式。

我选择了选项2-如果您不是“ C / C ++”程序员,则可以让您尝试运行此方法的测试套件的作者,以下步骤应有助于使它们入门:

  1. 创建一个测试访问者以对测试运行的结果进行后期处理。
  2. 创建一个BOOST_GLOBAL_FIXTURE类,该类在其析构函数中浏览测试结果,以正确的格式输出测试结果。
  3. 在主测试模块中实例化夹具类。

即:

struct JUnitVisitor : public boost::unit_test::test_tree_visitor{    void visit( boost::unit_test::test_case const& tc )    {        // output <testcase> xml in JUnit format    }    bool test_suite_start( boost::unit_test::test_suite const& ts )    {        // output <testuite> xml in JUnit format    }    void test_suite_finish( boost::unit_test::test_suite const& ts )    {        // output </testuite> xml in JUnit format    }};struct MyJUnitOpFixture{    MyJUnitOpFixture() {}    ~MyJUnitOpFixture()    {        // open results file        /// output <testsuites> start tag        // use a visitor to walk the test results tree    JUnitVisitor visitor ( out );        boost::unit_test::traverse_test_tree(      boost::unit_test::framework::master_test_suite(),      visitor      );        /// output </testsuites> end tag    }}

然后,通过添加以下内容在主测试文件中实例化全局夹具:

BOOST_GLOBAL_FIXTURE( MyJUnitOpFixture );


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号