docker运行带有空格的环境变量

时间:2017-09-19 05:18:12

标签: dockerfile robotframework

我有Dockerfile试图调用Robot Framework测试运行器。我将所需的命令行参数(例如,testcases,testsuit,包含的标记,排除的标记等)作为环境变量传递给Dockerfile。有时我的命令行参数包含空格。例如,将我的测试用例视为Define Something,将testuite视为MyWebsite。如果我将环境设置为 TESTCASE ='定义赞助商' TESTSUITE = MyWebsite ,我将从Robot Framework测试运行器中收到此错误:

[ ERROR ] Suite 'Scenarios' contains no tests named ''Define or Something'' in suite 'MyWebsite'.

我尝试了多种方法来传递我的环境:

  1. 使用env文件:

    docker run --env-file test/test.env

    test/test.env包含的位置:

    TESTSUITE="MyWebsite"

    TESTCASE="Define Sponsor"

  2. 在shell中设置它们:

    TESTSUITE="MyWebsite"

    TESTCASE="Define Sponsor"

  3. Dockerfile

    中设置它们

    ENV TESTSUITE="MyWebsite"

    ENV TESTCASE="Define Sponsor"

  4. 所有人都回复了提到的错误。

1 个答案:

答案 0 :(得分:3)

这里的错误很明显,尤其是这一部分:contains no tests named ''Define or Something''

注意Define OR Something。 CLI使用空格作为分隔符,因此它认为您正在尝试选择测试用例DefineSomething。相反,键入Define_Something和Robot Framework将正确地将下划线转换为空格,但在CLI和它的分隔符进行评估后,应该正确选择您的测试用例,Define Something

记录在案here

  

可能的下划线用空格替换,完全小写的名称是标题。例如,some_tests.html变为Some Tests,My_test_directory变为My test directory。