Robotframework 机器人框架&x27;xml';复制到其他文件夹

Robotframework 机器人框架&x27;xml';复制到其他文件夹,robotframework,Robotframework,当我试图将文件“Output.xml”从父文件夹复制到目标文件夹时,它没有被正确复制,即:目标文件夹中的文件大小不同。我正在执行关键字以复制“套件拆卸”中的文件。这个问题的任何解决方案 为复制文件而编写的代码: OperatingSystem.Copy Files ${sProjectPath}//output.xml ${sFinalFolder} 无论它是否可以从Robot框架脚本中完成,问题是它应该从Robot脚本中完成。这些文件可以通过当前Robot框架进程锁定和/或更改。如果不是

当我试图将文件“Output.xml”从父文件夹复制到目标文件夹时,它没有被正确复制,即:目标文件夹中的文件大小不同。我正在执行关键字以复制“套件拆卸”中的文件。这个问题的任何解决方案

为复制文件而编写的代码:

OperatingSystem.Copy Files  ${sProjectPath}//output.xml  ${sFinalFolder}

无论它是否可以从Robot框架脚本中完成,问题是它应该从Robot脚本中完成。这些文件可以通过当前Robot框架进程锁定和/或更改。如果不是今天,这很可能是这一领域未来任何变化的一部分

从这个角度来看,我只能建议在Robot框架启动之前复制这些文件,而不是之后。这样可以确保这些文件的内容不会更改,并且适合您的目的

由于这些类型的动作通常不是测试用例场景的一部分,我认为它们是总体业务流程的一部分。这包括从版本控制软件获取测试脚本的正确版本、启动Robot框架、交流结果(例如电子邮件)和保护测试证据(日志文件和其他文件)


一般来说,这些都是像Jenkins、Travis CI或Bambor(仅举几例)这样的CI工具中的标准步骤功能。即使您只是从这条路径开始,将这种逻辑与测试脚本分离也会节省您以后的大量工作。

看起来,Copy Files Kw在拆卸过程中不会复制output.xml的内容,尽管它使用samename创建文件。正如A.Kootstra所说,这可能是目前的一个限制

备选方案: 在单独的robot脚本中,您可以重命名从第一个脚本生成的文件“output.xml”,然后可以在下面的命令下运行

复制文件

${sProjectPath}//output.xml  ${sFinalFolder} 

这将复制整个内容

问题在于,当测试运行时,输出文件不存在。它不能在套件拆卸期间存在,因为套件拆卸的结果必须是日志的一部分

如果您需要将日志保存在另一个文件夹中,最简单的解决方案是告诉robot最初在那里写入日志,使用命令行选项或

如果不能使用
--output
,那么简单的解决方案可能是创建一个运行测试的脚本,然后在运行后复制文件。用户指南中标题为的部分中提到了这一点


一个稍微复杂一点的解决方案是使用A,它在
done
方法中复制文件。

Robot运行报告在最后由Robot framework工具创建。因此,即使在套件拆卸中,也不存在完整的结果/报告文件

最佳实践是提供带有所需输出目录的--output参数。 您可以在《用户指南》中找到更多详细信息 根据第3.5.1节

注: 命令行选项--output(-o)确定相对于输出目录创建输出文件的路径。运行测试时,输出文件的默认名称为output.xml

另一种方法是重新启动命令,并对robot run生成的输出文件进行操作。
使用Rebot对输出进行后期处理时,除非显式使用--output选项,否则不会创建新的输出文件。

您能粘贴到目前为止编写的代码吗?添加了代码@pankaj。“log.html”也是如此。我得到的一个建议发布在这里,它没有任何解决方案。问题不在于
copy files
关键字。问题是在调用关键字时output.xml文件不存在。。。。或者,如果它存在——运行中的前几个套件已经完成,那么它还不是完整和正确的xml。物理上要写的最后一件事(物理上,根据定义,xml没有相同级别节点的顺序)是整个运行的统计信息,并且在最后一个测试用例完成之前,这些信息不会出现。在Robot Framework启动之前,不可能复制output.xml文件,因为它在开始之前不存在。这个问题是关于output.xml文件的,该文件是在测试完成运行后生成的。在开发过程中,以及在生产过程中经验较少的团队中,上一次运行中生成的output.xml会被覆盖。为了防止出现这种情况,有些人可能希望在他们的脚本中包含此功能,而这不属于脚本,并建议考虑CI。是的,我使用了“-outputdir”选项,它从一开始就在我想要的目录中生成报告。