运行 个 docker 容器内的仪表测试

Run gauge tests inside a docker container

我正在尝试 Docker 化一个 Gauge 测试自动化项目,这样我就可以 运行 在 Docker 容器中进行规范。项目写在Java和SpringBoot.

我在 Gauge 文档中看到了这个 tutorial

这是教程中的Docker文件:

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 容器内的规格有什么想法吗?

这是我在 docker 容器中获得测试 运行ning 所做的。

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

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

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

这是 DockerFile。我开发了一个 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。