0
我寫了一個C擴展,旨在提高Python庫的性能。擴展安裝爲一個額外的使用PIP:讓特拉維斯CI爲特定的PyPI包運行單元測試
# Install the library by itself:
pip install pyota
# Install the Python library w/ C extension:
pip install pyota[ccurl]
如果存在
的Python庫更喜歡C擴展,但它會依傍一個純Python實現:
# iota/crypto/__init__.py
try:
from ccurl import *
except ImportError:
from .pycurl import *
的簡單方法測試C擴展是安裝擴展,然後運行Python庫的單元測試。有足夠的覆蓋範圍,如果單元測試通過安裝C擴展,我可以確信C擴展的行爲與純Python實現完全相同。
但是,這被證明是非常棘手的自動化。
我試圖讓特拉維斯CI做這樣的事情:
pip install -e .
(即安裝pyota[ccurl]
到VENV)。- 安裝
pyota
源遠程到cwd(源遠程包括單元測試)。 nosetests pyota/tests
(運行本地源遠程單元測試)。
不過,我有一個時間赫克搞清楚如何實現步驟2
我如何指導特拉維斯CI通過PIP下載一個源代碼分發,以便它可以運行單元測試?