Robotframework:套件中不包含测试

标签 robotframework

我正在努力解决 -s --suite 选项。 当我运行我的所有测试用例文件时,如下所示:robot.,一切都很好(即告诉机器人运行当前文件夹中的所有测试用例文件,.对于当前文件夹)。或者,如果我想运行特定的测试用例文件,比如robot mytest.robot,也可以正常工作。

但是,最近我创建了一个 init 文件。该命令在运行 robot . 时执行(因为它存储在该目录中),但在运行 robot mytest.robot 时自然不会执行。到目前为止一切都清楚了。

我认为简单的解决方案是运行 robot -s mytest.robot 。 但是,我收到错误:套件“BDD”在套件“mytest.robot”中不包含任何测试。 这是不对的,因为正如我上面提到的,从同一目录像 robot mytest.robot 一样运行它可以正常工作,该文件中的测试用例已被处理。 此外,即使我运行 robot -s non_existent_test_case_file.robot ,我也会得到相同的结果。 >>> 套件“BDD”在套件“non_existent_test_case_file.robot”中不包含任何测试。 code>,这也应该证明问题不在于我的 mytest.robot 没有指定测试 = 错误消息根本就是错误的。

使用:Robot Framework 3.1(Linux 上的 Python 3.6.6)

有什么提示吗?

添加更多信息

我创建了新文件夹“temp”,将 __init__.robotmytest.robot 文件移至其中。我编辑了它们,使它们尽可能基本。

__init__.robot:

*** Settings ***

Suite Setup     RobotSetup
Suite Teardown  RobotTeardown

*** Keywords ***

RobotSetup
    Log To Console    robot init setup

RobotTeardown
    Log To Console    robot init teardown

mytest.robot:

*** Test Cases ***

MyBestTestCase
    Log To Console     hello world

结果:

[/vagrant/test/bdd/temp]$ ll
total 8
-rwxrwxrwx. 1 vagrant vagrant 213 Jan 23 10:44 __init__.robot
-rwxrwxrwx. 1 vagrant vagrant  74 Jan 23 10:44 mytest.robot

[/vagrant/test/bdd/temp]$ robot .
==============================================================================
Temp
==============================================================================
robot init setup
Temp.Mytest
==============================================================================
MyBestTestCase                                                        hello world
MyBestTestCase                                                        | PASS |
------------------------------------------------------------------------------
Temp.Mytest                                                           | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
robot init teardown
Temp                                                                  | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed

...并且

[/vagrant/test/bdd/temp]$ robot -s mytest.robot .
[ ERROR ] Suite 'Temp' contains no tests in suite 'mytest.robot'.

最佳答案

问题是您告诉机器人运行“mytest”套件中的“robot”套件,但它找不到名为“robot”的套件。既然它找不到名为“robot”的套件,那么它当然也找不到名为“robot”的套件中的任何测试。

当您使用--suite时,您不给它文件名,您必须给它测试套件名称。在您的情况下,您将使用 robot -s mytest . 运行机器人。

关于Robotframework:套件中不包含测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54323854/

相关文章:

python - 如何在机器人框架中将凭据传递给 RESTinstance POST 请求?

testing - 有没有办法让 Robot Framework 以特定顺序运行测试套件?

python - 是否可以使用 Selenium2Library 关键字查找父元素及其子元素?

python - 执行 Sql 脚本返回 "None"

python - 如何将对象传递给机器人框架中的关键字?

robotframework - 机器人框架中@和$的区别

robotframework - 通过 Locust 进行并行机器人框架测试

robotframework - 如何使用 Robot Framework 获取列表中的项目数?

robotframework - 测试执行后如何在 Robot framework 日志文件中记录命令输出?

python - RF : Replace ${SPACE}, ${EMPTY} 和 - 值为 '0'