【问题标题】:Robot Framework Test Case Generation from Within a Test Case?从测试用例中生成机器人框架测试用例?
【发布时间】:2016-03-01 05:56:55
【问题描述】:

我正在使用 Robot Framework 来自动化基于 Linux 的设备的板载单元测试。

设备有一个目录/data/tests,其中包含一系列子目录,每个子目录都是一个测试模块,运行单元测试需要执行'run.sh'。例如:

/data/tests/module1/run.sh

/data/tests/module2/run.sh

我写了一个函数,将子目录名称收集在一个数组中,这是要执行的测试模块的列表。模块的数量每天都在变化。

@{modules}=     SSHLibrary.List Directories in Directory       /data/tests

然后是另一个函数(Module Test),它基本上是在元素列表上运行一个 FOR 循环,并在每个子目录中执行 run.sh,收集日志数据,并将其记录到 log.html 文件中。

我遇到的问题是,在创建 log.html 文件时,有一个名为 Module Test 的测试用例,在 FOR 循环下,每个元素(测试模块)都有一个“var”条目。在每个“var”条目下是模块执行的结果。

是否可以在 FOR 循环中为每个元素创建一个测试用例并针对它记录结果?现在,如果其中一个模块/元素失败,我没有得到准确的结果,我仍然可以通过 Module Test 测试用例。我想用日志记录测试用例模块 1、模块 2、...、模块 N,并为每个测试用例通过失败。鉴于模块的数量可能因执行而异,我无法创建静态测试用例,一旦确定了用于测试运行的模块数量,我需要能够动态创建测试用例。

非常感谢任何输入。

谢谢,

丹。

【问题讨论】:

  • 您想在运行时、编译前或编译后动态创建代码(模块)?请包含一些功能模块测试的示例代码。为什么不能使用data driven tests for the framework

标签: unit-testing testing robotframework testcase


【解决方案1】:

您可以编写一个简单的脚本,通过读取/data/test/module* 动态创建机器人测试文件,然后为每个模块创建一个测试用例。在每个测试用例中,只需运行操作系统命令并检查返回码(run.sh)。 这样,您就得到了一个单独的测试套件,其中包含许多测试用例,每个测试用例代表一个模块。

【讨论】:

    【解决方案2】:

    考虑编写一个 bash 脚本,为每个模块运行机器人测试,然后使用 rebot 脚本将报告合并到一个报告中。在 pybot 脚本中使用 --name 参数来区分报告中的测试。

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 2022-12-28
      相关资源
      最近更新 更多