Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
Batch file 批处理文件在循环中丢失日志_Batch File_Robotframework - Fatal编程技术网

Batch file 批处理文件在循环中丢失日志

Batch file 批处理文件在循环中丢失日志,batch-file,robotframework,Batch File,Robotframework,我在一个文件夹中有各种测试用例,它们要求我进行连续循环。为了尝试这一点,我尝试制作一个批处理脚本来循环测试用例。但是,较早完成的迭代将丢失,并且只保留最近的迭代。如何保存所有迭代的XML日志 我的批处理文件如下所示: FOR /L %%A IN (1,1,300) DO ( call pybot --name *.robot ) 您需要让脚本告诉robot为循环每次迭代生成的输出文件指定一个唯一的名称。然后需要额外的步骤将所有这些输出合并为一个 首先,生成唯一的输出文件: FOR /

我在一个文件夹中有各种测试用例,它们要求我进行连续循环。为了尝试这一点,我尝试制作一个批处理脚本来循环测试用例。但是,较早完成的迭代将丢失,并且只保留最近的迭代。如何保存所有迭代的XML日志

我的批处理文件如下所示:

FOR /L %%A IN (1,1,300) DO (
     call pybot --name *.robot
)

您需要让脚本告诉robot为循环每次迭代生成的输出文件指定一个唯一的名称。然后需要额外的步骤将所有这些输出合并为一个

首先,生成唯一的输出文件:

FOR /L %%A IN (1,1,300) DO (
     call pybot --output output-%%A.xml *.robot
)
注意:默认情况下,
pybot
将生成log.html和report.html。如果要生成单个统一的日志和报告,可能需要在循环中抑制它们。如果是这样,请在文件名之前添加
--log none--report none
,以防止在循环中创建这些文件

接下来,您可以使用rebot将所有这些单独的报告合并到一个报告中:

call rebot *.xml
我不知道您的系统上是否有已知的
reboot
命令——它是robot的一部分,但我不知道您是如何在系统上安装这些东西的。一般来说,如果
pybot
是有效的命令,
reboot
也应该是有效的。有关rebot的更多信息,请参阅《robot framework用户指南》中的



注意:批处理脚本中似乎有一个bug。当您调用pybot--name*.robot时,第一个文件将不会作为测试运行,因为它将被赋予
--name
选项,而不是被视为应该运行的测试文件。

您需要让脚本告诉robot为循环每次迭代生成的输出文件指定一个唯一的名称。然后需要额外的步骤将所有这些输出合并为一个

首先,生成唯一的输出文件:

FOR /L %%A IN (1,1,300) DO (
     call pybot --output output-%%A.xml *.robot
)
注意:默认情况下,
pybot
将生成log.html和report.html。如果要生成单个统一的日志和报告,可能需要在循环中抑制它们。如果是这样,请在文件名之前添加
--log none--report none
,以防止在循环中创建这些文件

接下来,您可以使用rebot将所有这些单独的报告合并到一个报告中:

call rebot *.xml
我不知道您的系统上是否有已知的
reboot
命令——它是robot的一部分,但我不知道您是如何在系统上安装这些东西的。一般来说,如果
pybot
是有效的命令,
reboot
也应该是有效的。有关rebot的更多信息,请参阅《robot framework用户指南》中的



注意:批处理脚本中似乎有一个bug。当您调用pybot--name*.robot时,第一个文件将不会作为测试运行,因为它将被赋予
--name
选项,而不会被视为应该运行的测试文件。

使用以下参数显式指定日志文件名:

FOR /L %%A IN (1,1,300) DO (
     call pybot --output otput_%%A.html --log log_%%A.html --report report_%%A.html *.robot
)

请记住,任何selenium屏幕截图仍将被覆盖(如果您在测试中使用selenium)。

使用以下参数明确指定日志文件名:

FOR /L %%A IN (1,1,300) DO (
     call pybot --output otput_%%A.html --log log_%%A.html --report report_%%A.html *.robot
)

请记住,任何selenium屏幕截图仍将被覆盖(如果您在测试中使用selenium)。

使用
>
代替
(追加代替重新创建)使用
>
代替
(追加代替重新创建)这并不能真正解决我的问题,因为我想维护XML日志,不是cmd日志。@downvoter:OP最初在问题中省略了“XML”。请在回答中添加解释。@ADreNaLiNe DJ:真的吗?如图所示,使用重定向器将
日志
(按照OP最初的要求)记录到指定的文件中,解决发布的原始未扩展问题。@Magoo没有解释的答案对OP和其他需要了解解决方案的访问者来说是无用的。这并不能真正解决我的问题,因为我想维护XML日志,而不是cmd日志。@downvoter:OP最初省略了“XML”从问题开始。请给你的答案加上解释。@ADreNaLiNe DJ:真的吗?如图所示,使用重定向器将
日志记录到指定的文件中(按照OP最初的要求),从而解决发布的原始未扩展问题。@Magoo一个没有解释的答案对OP和其他需要了解解决方案的访问者是无用的。如文中所述,这将失败。文件名需要在选项(如--output等)后面,但仍然不正确
--log\%%A.html
不是有效选项。如前所述,此操作将失败。文件名需要在选项(如--output等)后面,但仍然不正确
--log\%%A.html
不是有效选项。