微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 AWS 上的 docker 容器中的 jenkins 上测试基于 tkinter 的功能

如何解决在 AWS 上的 docker 容器中的 jenkins 上测试基于 tkinter 的功能

我有一个 python 代码,它通过了我本地机器上的所有测试。该代码使用 tkinter 并提供了一个 GUI。但是,实际上没有任何测试功能打开 GUI。 (不过他们调用 tk.Tk())。

我在本地创建了一个 docker 容器,并且可以使用 X11 转发来通过对“本地”容器的测试。

现在,我正在尝试在我在 EC2 实例上设置的 Jenkins 上运行测试。 Jenkins 应该使用我的存储库中的 Dockerfile 创建一个 docker 容器。然后调用“docker run -e ... -v ...”(类似于我在本地计算机上的操作)来检查测试。我知道我的 ec2 实例没有 gui,因此 x11 转发不像在我的电脑上那么简单。应该有一种方法可以通过 AWS 上的 Jenkins 设置来检查使用 gui 的测试。任何帮助表示赞赏。

编辑 这是我在 AWS 上的构建脚本,它使用 Dockerfile 创建 docker 容器:

IMAGE_NAME="test-image"
CONTAINER_NAME="deidentifier_clinical"
echo "Check current working directory"
pwd
echo "Build docker image and run container"
docker build -t $IMAGE_NAME .
echo $disPLAY
docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e disPLAY=unix$disPLAY $IMAGE_NAME bash -c "cd /$CONTAINER_NAME;make test"
echo "copy coverage.xml into Jenkins container"
rm -rf reports; mkdir reports
docker cp $CONTAINER_NAME:/deidentifier_clinical/htmlcov/* reports/.
echo "Cleanup"
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker rmi $IMAGE_NAME

这在 docker run 行失败。设置 X11 转发后,相同的脚本在我的本地计算机上运行没有问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。