运行 个 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。
我正在尝试 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。