Catch JUnit输出中没有测试用例标记

时间:2017-11-02 14:56:20

标签: c++ catch-unit-test

当我使用-r junit运行catch单元测试时,输出中省略了成功的测试用例。这导致我的Jenkins构建失败,因为JUnit插件期望JUnit XML中的测试用例标记。无论如何,如果成功运行,我的JUnit输出中是否会出现测试用例标记?

Catch Test

#define CATCH_CONFIG_MAIN
#include "catch.hpp"

TEST_CASE("Pass")
{
    SECTION( "Passing on purpose" ) {
        REQUIRE(true);
    }
}

TEST_CASE("Fail")
{
    SECTION( "Failing on purpose" ) {
        REQUIRE(false);
    }
}

-r junit的输出

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="WhispererEngineTests.exe" errors="0" failures="1" tests="2" hostname="tbd" time="0.154008" timestamp="2017-11-02T14:53:57Z">
    <testcase classname="Fail" name="Failing on purpose" time="0.153527">
      <failure message="false" type="REQUIRE"> at -user path- test_Card.cpp:20
      </failure>
    </testcase>
    <system-out/>
    <system-err/>
  </testsuite>
</testsuites>

1 个答案:

答案 0 :(得分:0)

尝试添加&#34; -s&#34;对于参数,它应该使捕获列表所有测试而不仅仅是失败的测试。尝试使用&#34; - ?&#34;运行可执行文件。其他选项。