将 cucumber.options(标签)作为 ENV 传输到 Docker 容器中

Transfer cucumber.options (tags) as ENV into Docker container

大家好。

我有一个简单的基于 java 的黄瓜应用程序,运行s 在 Docker 中。我计划通过对 Cucumber 标签使用 ENV 来指定 运行 的场景。

我的 Docker 能够 运行 指定标签的文件:

FROM maven:3.6.1-jdk-11
COPY target/cucumber-app.jar ./

CMD java -jar -Dcucumber.options='--tags @default' cucumber-app.jar

在这种情况下,在 docker 运行 命令期间一切正常。

我计划为未指定的标签设置一个默认场景,并能够通过 ENV 设置特殊场景:

    FROM maven:3.6.1-jdk-11
    COPY target/cucumber-app.jar ./
    ENV TAG '--tags @default'
    
    CMD java -jar -Dcucumber.options=$TAG cucumber-app.jar

不幸的是,在这种情况下,在 运行ning docker 容器之后,我得到了:

Error: could not open `default'

您可能知道为什么使用 ENV 崩溃可能性来指定 cucumber.options?

如果您有最新版本的 Cucumber 而不是尝试通过环境变量通过系统 属性 压缩命令行选项,您可以直接设置环境变量。即:

ENV CUCUMBER_FILTER_TAGS '@Cucumber and not (@Gherkin or @Zucchini)'
CMD java -jar cucumber-app.jar

https://github.com/cucumber/cucumber-jvm/tree/main/core