【问题标题】:Python tests run locally on ubuntu but fails when run through Jenkins with error "ImportError while importing test module '/var/lib/jenkins/workspace"Python 测试在 ubuntu 上本地运行,但在通过 Jenkins 运行时失败并出现错误“导入测试模块时出现 ImportError '/var/lib/jenkins/workspace”
【发布时间】:2020-07-14 14:15:49
【问题描述】:

Jenkins 设置在 Ubuntu 上。

本地:使用python 3.6创建了一个虚拟环境,通过命令行使用pythom -m pytest - ./{test.py}运行测试成功

詹金斯工作:

在 Build > Shell 脚本中,以与本地相同的方式创建虚拟环境并运行命令。

python3.6 -m venv jenkins-venv

来源 ${WORKSPACE}/jenkins-venv/bin/activate

pip install --no-cache-dir -r ${WORKSPACE}/project/requirements.txt

python -m pytest -v ${WORKSPACE}/project/test_day1.py

错误: 错误收集脚本/ 导入测试模块 '/var/lib/jenkins/workspace/job_name/project/test_Login.py' 时出现 ImportError。

提示:确保您的测试模块/包具有有效的 Python 名称。

ModuleNotFoundError: 没有命名模块

【问题讨论】:

    标签: python jenkins


    【解决方案1】:

    如果您的 PATH 变量在您的机器上包含该模块的目录,但在 Jenkins 上不包含该目录,则会发生这种情况。

    【讨论】:

    • 嗨乔希,我的詹金斯和用户机器是一样的。此外,在本地和通过 Jenkins shell 检查 PATH 值,两者都不包含项目模块条目。
    • 嘿@AkshayJ,我最近也在处理虚拟环境的这个问题。我了解到您可以将 .pth 文件添加到 python 安装的 site-packages 目录,以向 Python 路径添加方向。查看this answer。这实际上可能不是你的问题,只是把它扔在那里。
    • 问题已解决:创建虚拟环境后,我只是将目录更改为项目的根目录 (cd ${WORKSPACE}/{project root DIR}) 并开始拾取测试脚本。谢谢你的帮助。 :)
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2019-12-03
    • 2019-05-29
    相关资源
    最近更新 更多