Robotframework:套件中不包含任何测试

时间:2019-01-23 09:23:23

标签: robotframework

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

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

我认为简单的解决方案是运行robot -s mytest.robot . 但是,我收到一个错误消息:Suite 'BDD' contains no tests in suite 'mytest.robot'. 这样做是不对的,因为如上所述,可以从相同的目录像robot mytest.robot一样运行它,这样就可以处理该文件中的测试用例了。 而且,即使我运行robot -s non_existent_test_case_file.robot . >>> Suite 'BDD' contains no tests in suite 'non_existent_test_case_file.robot'.,我也会得到相同的结果,这也应证明我的mytest.robot不存在问题,未指定测试=错误消息根本是错误的。

使用:Robot Framework 3.1 (Python 3.6.6 on linux)

有任何提示吗?

添加更多信息

我创建了新文件夹“ 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'.

1 个答案:

答案 0 :(得分:2)

问题是您要告诉机器人在套件“ mytest”中运行套件“ robot”,而找不到名为“ robot”的套件。由于它找不到名为“ robot”的套件,因此当然不能在名为“ robot”的套件中找到任何测试。

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