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下载一个源代码分发,以便它可以运行单元测试?