我有這樣的文件結(jié)構(gòu):./ project_name/ __init__.py setup.py tests/ .travis.yml所以我在我的 .travis.yml 中運(yùn)行 py.test。根據(jù)我安裝包的方式,它要么工作,要么遇到錯(cuò)誤。如果我用 安裝包pip install -e .,一切都很好,但這有一個(gè)缺點(diǎn),即不是一個(gè)現(xiàn)實(shí)的安裝場景。如果我使用 安裝包pip install .,它會(huì)像在非開發(fā)模式下的另一臺(tái)機(jī)器上一樣安裝。但是,出現(xiàn)了一個(gè)問題:當(dāng)我運(yùn)行 pytest 時(shí),我的測試使用import project_name. 然后,python 從目錄本地導(dǎo)入,而不是使用已安裝的包,并導(dǎo)致ImportMismatchError.處理這個(gè)問題的最佳方法是什么?
2 回答

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
一種解決方案可能是制作一個(gè)tox.ini在頂層調(diào)用的文件以與 tox 一起使用。這是一個(gè)負(fù)責(zé)構(gòu)建環(huán)境的工具 - 它就像make但更特定于 python 的東西。如果你做一個(gè)tox.ini:
[tox]
envlist = py
[testenv]
commands = pytest tests
deps =
pytest
然后安裝tox使用pip3 install tox,那么就命令tox在命令行中,它會(huì)在安裝包,運(yùn)行在一個(gè)獨(dú)立的虛擬環(huán)境測試的照顧。
然后,您可以在您的travis.yml:
language: python
python:
- 3.6
install:
- pip install tox
script:
- tox
Travis 將用于tox以更具可重復(fù)性的方式運(yùn)行測試。
添加回答
舉報(bào)
0/150
提交
取消