Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在docker容器内运行仪表测试_Java_Docker_Dockerfile_Gauge_Getgauge - Fatal编程技术网

Java 在docker容器内运行仪表测试

Java 在docker容器内运行仪表测试,java,docker,dockerfile,gauge,getgauge,Java,Docker,Dockerfile,Gauge,Getgauge,我正在尝试将一个Gauge测试自动化项目Docker化,这样我就可以在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

我正在尝试将一个Gauge测试自动化项目Docker化,这样我就可以在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
如您所见,DokCarfile中没有“添加”/“复制”

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


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

下面是我在Docker容器中运行测试所做的工作

在我的项目结构中,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

当然,你可以使用现成的罐子,而不是把它放在容器里。或者您可以在创建docker映像时构建JAR。

没有
ADD
,因为用户希望将项目目录作为卷装载到guest上。例如:
docker运行-v pwd:/-w=“/”测试仪表运行规范
。ref:@SrikanthVenugopalan这是否意味着,您需要docker容器和机器上可用的项目目录,以便运行规范?我正在尝试对整个项目进行dokerize。我将更新问题,使其更具体。是的,文档中的docker说明提到构建一个具有度量和依赖项的环境,通过将它们作为卷装载,可以运行多个项目。我不建议在容器中运送项目,因为您必须为每次更改构建一个映像!此外,如果装载卷,则可以访问主机中的报告/日志(在容器被终止后)。