Docker 运行带有空格的传递环境变量



我有一个Dockerfile正在尝试调用机器人框架测试运行器。我将所需的命令行参数(例如测试用例、测试套装、包含的标签、排除的标签等)作为环境变量传递给Dockerfile。有时我的命令行参数包含空格。例如,将我的测试用例视为Define Something,而我的测试套件为MyWebsite。如果我将我的环境设置为TESTCASE='define Sponsor'TESTSUITE=MyWebsite,我将从机器人框架测试运行器收到此错误:

[ 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. 将它们设置在外壳中:

    TESTSUITE="MyWebsite"

    TESTCASE="Define Sponsor"

  3. 将它们设置在Dockerfile

    ENV TESTSUITE="MyWebsite"

    ENV TESTCASE="Define Sponsor"

他们都返回了提到的错误。

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

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

此处记录了此文档

可能的下划线将替换为空格,并且完全小写的名称将标题大写。例如,some_tests.html变为"一些测试",My_test_directory变为"我的测试目录"。

最新更新