在 travis 中安装和测试 python 项目

我有这样的文件结构:


./

    project_name/

        __init__.py

    setup.py

    tests/

    .travis.yml

所以我在我的 .travis.yml 中运行 py.test。根据我安装包的方式,它要么工作,要么遇到错误。


如果我用 安装包pip install -e .,一切都很好,但这有一个缺点,即不是一个现实的安装场景。


如果我使用 安装包pip install .,它会像在非开发模式下的另一台机器上一样安装。但是,出现了一个问题:当我运行 pytest 时,我的测试使用import project_name. 然后,python 从目录本地导入,而不是使用已安装的包,并导致ImportMismatchError.


处理这个问题的最佳方法是什么?


有只小跳蛙
浏览 167回答 2
2回答

素胚勾勒不出你

一种解决方案可能是制作一个tox.ini在顶层调用的文件以与 tox 一起使用。这是一个负责构建环境的工具 - 它就像make但更特定于 python 的东西。如果你做一个tox.ini:[tox]envlist = py[testenv]commands = pytest testsdeps =    pytest然后安装tox使用pip3 install tox,那么就命令tox在命令行中,它会在安装包,运行在一个独立的虚拟环境测试的照顾。然后,您可以在您的travis.yml:language: pythonpython:  - 3.6install:  - pip install toxscript:  - toxTravis 将用于tox以更具可重复性的方式运行测试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python