我正在为-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__.robot
和mytest.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'.
答案 0 :(得分:2)
问题是您要告诉机器人在套件“ mytest”中运行套件“ robot”,而找不到名为“ robot”的套件。由于它找不到名为“ robot”的套件,因此当然不能在名为“ robot”的套件中找到任何测试。
使用--suite
时,不给它文件名,而必须给它测试套件名称。在您的情况下,您可以使用robot -s mytest .
运行机器人。