C++ Catch2-输出到控制台和文件
我可以使用C++ Catch2-输出到控制台和文件,c++,catch-unit-test,C++,Catch Unit Test,我可以使用-o junit--output Catch_results.xml运行Catch可执行文件来生成xml报告 是否有某种方法既可以生成xml报告,又可以生成控制台输出?假设您要求在文件中使用JUnit输出,并且在stdout使用标准控制台报告程序,那么就没有办法做到这一点 Catch2过去支持多个报告器,但不支持让它们将输出写入单独的文件/输出,这意味着该功能不可用,直到将来某个时候才被删除。假设您要求在文件中有JUnit输出,在标准控制台报告器上有标准控制台报告器,没有办法做到这一点
-o junit--output Catch_results.xml
运行Catch可执行文件来生成xml报告
是否有某种方法既可以生成xml报告,又可以生成控制台输出?假设您要求在文件中使用JUnit输出,并且在stdout使用标准控制台报告程序,那么就没有办法做到这一点
Catch2过去支持多个报告器,但不支持让它们将输出写入单独的文件/输出,这意味着该功能不可用,直到将来某个时候才被删除。假设您要求在文件中有JUnit输出,在标准控制台报告器上有标准控制台报告器,没有办法做到这一点
Catch2过去支持多个报告器,但不支持让他们将输出写入单独的文件/输出,这意味着该功能无法使用,并且在将来某个时候才被删除。您可以实现自己的
侦听器。
侦听器可以为某些事件(测试套件开始/结束、测试用例开始/结束,…)实现“事件处理程序”。在这些事件处理程序中,您可以输出到控制台(使用printf
而不是cout
,因为测试运行程序可以拦截cout
)
而且,最重要的是,您的侦听器可以与报告器一起运行
您可以实现自己的侦听器
侦听器可以为某些事件(测试套件开始/结束、测试用例开始/结束,…)实现“事件处理程序”。在这些事件处理程序中,您可以输出到控制台(使用printf
而不是cout
,因为测试运行程序可以拦截cout
)
而且,最重要的是,您的侦听器可以与报告器一起运行
如果您使用的是类unix环境,则可以输出到标准输出,然后使用tee
将输出分叉到文件。在Windows上,:powershell“\myTestExe-o junit | tee catch\u results.xml”
当我尝试此操作时,文件catch\u results.xml仅包含“-ojunit”。您的参数似乎不正确,它应该是--reporter junit--out catch_results.xml
如果您使用的是类似unix的环境,您可以输出到stdout,并使用tee
将输出分叉到文件。在Windows上,:powershell“\myTestExe-o junit | tee catch_results.xml”
当我尝试此操作时,catch_results.xml文件只包含“-ojunit。您的参数似乎不正确,应该是--reporter junit--out catch_results.xml