我正在使用谷歌测试的输出参数,如--gtest_output=xml:报表\表尾报表.xml然而,一些XML属性如author和project不会像工具 * gtest 2 html * 所期望的那样导出。gtest中是否有一个属性如'author'可用?如果有,我应该在哪里分配它?
ktca8awb1#
在GoogleTest中,您在gtest2html中看到的字段(如"作者"、"项目"等)在默认情况下在xml输出中不可用。这些字段是预期gtest2html会找到的自定义字段。但是,您可以使用GoogleTest提供的RecordProperty函数将它们添加到同一个xml元素中。文档的最后一部分解释了:允许在测试生存期之外调用RecordProperty()。如果在测试之外但在测试套件的SetUpTestSuite()和TearDownTestSuite()方法之间调用它,则它将被属性化为测试套件的XML元素。如果在所有测试套件之外(例如,在测试环境中)调用它,则它将被属性化为顶级XML元素。因此,为了使XML输出与gtest2html兼容,需要在最外层的XML元素(具有标记"testsuites")中使用这些字段。溶液因此,在main或测试环境中(您不必使用,但文档中强烈推荐使用),在开始任何测试之前,您需要添加以下调用:
gtest2html
::testing::Test::RecordProperty ("project", "MyProject");
这将添加到xml输出中:
<testsuites ... project="MyProject" name="AllTests">
(我知道现在作为答案已经很晚了,但希望这能对某人有所帮助)
1条答案
按热度按时间ktca8awb1#
解释
在GoogleTest中,您在
gtest2html
中看到的字段(如"作者"、"项目"等)在默认情况下在xml输出中不可用。这些字段是预期gtest2html
会找到的自定义字段。但是,您可以使用GoogleTest提供的RecordProperty函数将它们添加到同一个xml元素中。
文档的最后一部分解释了:
允许在测试生存期之外调用RecordProperty()。如果在测试之外但在测试套件的SetUpTestSuite()和TearDownTestSuite()方法之间调用它,则它将被属性化为测试套件的XML元素。如果在所有测试套件之外(例如,在测试环境中)调用它,则它将被属性化为顶级XML元素。
因此,为了使XML输出与
gtest2html
兼容,需要在最外层的XML元素(具有标记"testsuites")中使用这些字段。溶液
因此,在main或测试环境中(您不必使用,但文档中强烈推荐使用),在开始任何测试之前,您需要添加以下调用:
这将添加到xml输出中:
(我知道现在作为答案已经很晚了,但希望这能对某人有所帮助)