无法在Docker容器中运行pytests

时间:2019-04-08 23:45:24

标签: docker pytest

我构建了一个docker映像并尝试运行pytest,出现以下错误: docker运行docker-whale

  

=============================测试会话开始================ ===============   平台linux2-Python 2.7.16,pytest-4.4.0,py-1.8.0,pluggy-0.9.0   rootdir:/ app   ========================== 0.00秒内未进行任何测试==================== ======   错误:找不到文件:--env预览

我的dockerFile:

CMD ["pytest" , "--env preview" , "fe/tests/US/MyCom/MyPageTests/" , "-m preview"]

这是由于docker“ env”变量和我的pytest“ env”环境变量之间的冲突而发生的吗?如果是这样,解决方法是什么?

如果我将ssh插入docker容器并运行它,则该命令可以正常工作。

1 个答案:

答案 0 :(得分:0)

您使用的CMD形式接受参数列表,并按照给定的方式传递参数。

您已将--envpreview合并为pytest无法理解的单个参数--env preview

像这样将它们分开:

CMD ["pytest", "--env", "preview" , "fe/tests/US/MyCom/MyPageTests/", "-m",  "preview"]

通常,如果您在外壳中输入以下命令:

pytest --env preview fe/tests/US/MyCom/MyPageTests/ -m preview

shell将命令行分隔成空格,并在argv的元素中提供每个空格。

但是对于CMD,没有shell创建参数列表。只有泊坞窗,它正按照您说的去做。