我有一个Dockerfile
正在尝试调用机器人框架测试运行器。我将所需的命令行参数(例如测试用例、测试套装、包含的标签、排除的标签等)作为环境变量传递给Dockerfile
。有时我的命令行参数包含空格。例如,将我的测试用例视为Define Something
,而我的测试套件为MyWebsite
。如果我将我的环境设置为TESTCASE='define Sponsor'和TESTSUITE=MyWebsite,我将从机器人框架测试运行器收到此错误:
[ ERROR ] Suite 'Scenarios' contains no tests named ''Define or Something'' in suite 'MyWebsite'.
我尝试了多种方式来传递我的环境:
使用 env 文件:
docker run --env-file test/test.env
其中
test/test.env
包含:TESTSUITE="MyWebsite"
TESTCASE="Define Sponsor"
将它们设置在外壳中:
TESTSUITE="MyWebsite"
TESTCASE="Define Sponsor"
将它们设置在
Dockerfile
:ENV TESTSUITE="MyWebsite"
ENV TESTCASE="Define Sponsor"
他们都返回了提到的错误。
这里的错误很明确,尤其是这部分:contains no tests named ''Define or Something''
请注意Define OR Something
。CLI 使用空格作为分隔符,因此它认为您正在尝试Define
和Something
选择测试用例。相反,键入Define_Something
和 Robot Framework 会将下划线正确转换为空格,但在评估 CLI 及其分隔符后,这应该正确选择您的测试用例,Define Something
此处记录了此文档
可能的下划线将替换为空格,并且完全小写的名称将标题大写。例如,some_tests.html变为"一些测试",My_test_directory变为"我的测试目录"。