java - 将 cucumber.options (tags) 作为 ENV 传输到 Docker 容器中
问题描述
今天是个好日子。
我有一个简单的基于 java 的黄瓜应用程序,它在 Docker 中运行。我计划通过对 Cucumber 标签使用 ENV 来指定要运行的场景。
我的 Dockerfile 能够运行指定的标签:
FROM maven:3.6.1-jdk-11
COPY target/cucumber-app.jar ./
CMD java -jar -Dcucumber.options='--tags @default' cucumber-app.jar
在这种情况下,在 docker run 命令期间一切正常。
我计划为未指定的标签设置默认场景,并能够通过 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
不幸的是,在这种情况下,在运行 docker 容器后我得到了:
Error: could not open `default'
可能您有任何想法为什么使用 ENV 崩溃可能性来指定 cucumber.options?
解决方案
如果您有 Cucumber 的最新版本,而不是尝试通过环境变量通过系统属性来压缩命令行选项,则可以立即设置环境变量。IE:
ENV CUCUMBER_FILTER_TAGS '@Cucumber and not (@Gherkin or @Zucchini)'
CMD java -jar cucumber-app.jar
推荐阅读
- css - WordPress 移动菜单
- reporting-services - SSRS 钻取报表使用表达式报表名称无效
- python - NGINX 110:在配置最大文件大小后从上游读取响应标头时连接超时
- php - Laravel 8. 如何使用预定义数据进行播种。他们互相依赖
- python - 基于非日期时间列的升级数据密度
- python - 在 Mac 上安装 PyAudion 时出现此错误
- python - 如何使用 pyfirmata2 使用 INPUT_PULLUP
- php - WooCommerce 运输文件所需的状态
- android-studio - 更新 firebase 最新版本后,MultiDexApplication 错误开始
- byte-buddy - bytebuddy 官方演示 throw Exception "Class already loaded: class foo.Bar"