问答 可以在容器中运行 allure 生成测试报告么

栗山未来 · 2021年04月23日 · 最后由 崽崽大人 回复于 2021年04月23日 · 2695 次阅读

目前在用 httprunner+allure 进行接口测试,现在是想把项目打包成 docker 镜像,启动容器后进行接口测试,生成测试报告,然后把测试报告通过 voulme 挂载出来

Dockerfile 如下:

FROM python:3.9.4
RUN mkdir -p /apps/hrun
WORKDIR /apps/hrun/api-test
COPY . /apps/hrun/api-test
RUN pip3 install allure-pytest -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install httprunner -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install sh -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN allure --version
CMD ["sh","./start.sh"]

.sh 文件里面是 hrun testcase 和 allure generate 的命令

现在的话直接构建会报错 allure not found。。

是还需要安装什么依赖么?

共收到 1 条回复 时间 点赞

Dockerfile 中 RUN allure --version 实际是在 Docker 容器中执行的,但你的容器中应该未安装 allure 的服务。
若要在容器中使用 allure 服务,建议在制作基础镜像时,将 allure 中服务安装一下。(强烈建议制作成基础镜像喔~)

Dockerfile 如下

ENV ALLURE_VERSION 2.13.7

RUN curl -o allure-commandline-$ALLURE_VERSION.tgz -Ls https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/$ALLURE_VERSION/allure-commandline-$ALLURE_VERSION.tgz \
 && tar -zxvf allure-commandline-$ALLURE_VERSION.tgz -C /opt/ \
 && rm allure-commandline-$ALLURE_VERSION.tgz \
 && ln -s /opt/allure-$ALLURE_VERSION/bin/allure /usr/bin/allure
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册