0

我正在尝试 Dockerize 一个 Gauge 测试自动化项目,以便我可以在 Docker 容器中运行规范。该项目是用 Java 和 Spring Boot 编写的。

我在 Gauge 文档中看到了这个教程。

这是教程中的 DockerFile:

FROM ubuntu

# Install Java.
RUN apt-get update && apt-get install -q -y \
    openjdk-8-jdk \
    apt-transport-https \
    gnupg2 \
    ca-certificates

# Install gauge
RUN apt-key adv --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 023EDB0B && \
    echo deb https://dl.bintray.com/gauge/gauge-deb stable main | tee -a /etc/apt/sources.list

RUN apt-get update && apt-get install gauge

# Install gauge plugins
RUN gauge install java && \
    gauge install screenshot

ENV PATH=$HOME/.gauge:$PATH

如您所见,DokcerFile 中没有“ADD”/“COPY”。

它只是建议在主机上安装 Gauge 和其他软件包的替代方法吗?

关于如何在 Docker 容器中运行规范的任何想法?

4

1 回答 1

1

这是我为在 docker 容器中运行测试所做的工作。

我在项目结构中的src旁边有一个specs文件夹,这意味着仪表测试将使用 JAR 文件运行,但它们本身并不是 JAR 文件的一部分。

--MyProject
----specs
----src
...

我使用 maven 在容器内运行测试。这就是为什么我更喜欢在容器内构建项目的原因,所以我可以使用与运行测试相同的 maven 版本准备好 JAR 文件。

这是 Docker 文件。我开发了一个 bash 脚本来运行测试。您可以使用 CMD 或 ENTRYPOINT 运行脚本:

FROM maven:3.6.1-jdk-8

# add any project resources needed
ADD env /home/e2e/env
ADD specs /home/e2e/specs
ADD src /home/e2e/src
ADD src/main/scripts/entrypoint.sh /home/e2e/
ADD pom.xml /home/e2e/

RUN ["chmod", "+x", "./home/e2e/entrypoint.sh"]

# Install Gauge, web browser and webdriver in your preferred way...

ENV PATH=$HOME/.gauge:$PATH
# I'm keeping the cntainer running. But it's all up to you.
CMD /home/e2e/entrypoint.sh && tail -f /dev/null

然后是简单的 entrypoint.sh 脚本:

#!/bin/bash
cd /home/e2e/
mvn clean package
gauge --version
google-chrome --version
mvn -version
mvn gauge:execute -DspecsDir=specs/myTest.spec

当然,您可以只使用现成的 JAR,而不是在容器内构建它。或者您可以在创建 docker 映像时构建 JAR。

于 2019-11-17T15:03:13.007 回答