Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing C++;来自shell脚本的Google测试框架 我们有一个C++应用程序exe,它有一些测试用例,这些测试用例是用谷歌测试框架编写的,并且运行成功。_Unit Testing_Googletest - Fatal编程技术网

Unit testing C++;来自shell脚本的Google测试框架 我们有一个C++应用程序exe,它有一些测试用例,这些测试用例是用谷歌测试框架编写的,并且运行成功。

Unit testing C++;来自shell脚本的Google测试框架 我们有一个C++应用程序exe,它有一些测试用例,这些测试用例是用谷歌测试框架编写的,并且运行成功。,unit-testing,googletest,Unit Testing,Googletest,但是这个exe在内部处理所有Google测试选项(在 因此,我们无法通过命令提示符使用Google测试选项(--gtest_output=“xml:report.xml”)为Google测试用例生成报告 所以我们的问题是:如果某个exe在代码中处理Google测试,并且我们希望从命令提示符手动获取报告,那么有任何选项可以这样做吗 我们可以编写一个shell脚本从命令提示符调用Google测试而不是执行exe吗?如果我正确理解您的问题,那么您的程序将运行Google测试代码,但您(还没有)这样做有

但是这个exe在内部处理所有Google测试选项(在 因此,我们无法通过命令提示符使用Google测试选项(
--gtest_output=“xml:report.xml”
)为Google测试用例生成报告

所以我们的问题是:如果某个exe在代码中处理Google测试,并且我们希望从命令提示符手动获取报告,那么有任何选项可以这样做吗


我们可以编写一个shell脚本从命令提示符调用Google测试而不是执行exe吗?

如果我正确理解您的问题,那么您的程序将运行Google测试代码,但您(还没有)这样做有一种机制可以将与Google测试框架相关的命令行选项中继到调用Google测试框架的代码中

如果这是正确的,那么您需要将代码添加到将测试的命令行选项中继到您的程序中。您可以添加一个选项
--google test=“…”
,然后将参数值传递给google测试基础结构。您将不得不担心从一个选项中解析多个选项,等等

然后,您将能够调用:

 your_program --google-test="-gtest_output=xml:report.xml" ...
而您的代码将管理这一点。不太可能有一个标准的方法来处理这个问题;没有任何东西会自动将命令行参数传播到Google测试框架。(请注意,您的程序不会看到引号;它们会被shell删除。)


您可以使用环境变量而不是命令行参数,但作为一种方法,它不太可取

如果我正确理解了您的问题,那么您的程序将运行Google测试代码,但您(还)没有将与Google测试框架相关的命令行选项中继到调用Google测试框架的代码的机制

如果这是正确的,那么您需要将代码添加到将测试的命令行选项中继到您的程序中。您可以添加一个选项
--google test=“…”
,然后将参数值传递给google测试基础结构。您将不得不担心从一个选项中解析多个选项,等等

然后,您将能够调用:

 your_program --google-test="-gtest_output=xml:report.xml" ...
而您的代码将管理这一点。不太可能有一个标准的方法来处理这个问题;没有任何东西会自动将命令行参数传播到Google测试框架。(请注意,您的程序不会看到引号;它们会被shell删除。)


您可以使用环境变量而不是命令行参数,但作为一种方法,它不太可取

如果您的程序正在使用推荐的方法调用google测试,那么默认情况下,它应该能够将--gtest_uu命令行选项转发到google测试框架

这是通过简单地调用

::testing::InitGoogleTest(&argc, argv);

如果要放弃exe,可以将编译的测试链接到提供gtest_主库,该库提供执行测试的标准主程序。

如果您的程序使用推荐的方法调用google测试,默认情况下,它应该能够将--gtest_uu命令行选项转发到google测试框架

这是通过简单地调用

::testing::InitGoogleTest(&argc, argv);

如果要放弃exe,可以将编译后的测试链接到提供gtest_main lib,该库提供执行测试的标准主程序。

如果给出的答案没有帮助,请澄清您的问题,以便给出更好的答案。当你的问题出现时,你甚至可以作为网站的新用户对答案进行评论。如果给出的答案没有帮助,那么请澄清你的问题,以便给出更好的答案。当问题是你的时候,你甚至可以作为网站的新用户对答案发表评论。