2017-04-25 2 views
0

Pythonライブラリのパフォーマンスを向上させるためのC拡張を書きました。拡張子は、余分な使用ピップとしてインストールされます。存在する場合特定のPyPIパッケージの単体テストを実行するためのTravis CIの入手

# 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を取得しようとしている:

  1. pip install -e .を(すなわち、venvにpyota[ccurl]をインストールします)。
  2. pyotaソースdistをcwdにインストールします(source distにはユニットテストが含まれています)。
  3. nosetests pyota/tests(ローカルソースdistの実行ユニットテスト)。

しかし、私はそれがユニットを実行できるように、PIPを介してソースディストリビューションをダウンロードするにはトラヴィスCIを指示するにはどうすればよいのステップ2を実行する方法

を考え出す時間の一体を抱えていますテスト?

答えて

0

これは、私が間違った問題を解決しようとしているように思えますが、ここでは正直なところがありますが、TravisはPythonライブラリをダウンロードしてユニットテスト:

# .travis.yml 
... 
script: 
    - pip install nose mock 
    - 'pip download --no-deps --no-binary :all: --dest pyota --pre pyota' 
    - tar -zxf pyota/PyOTA-*.tar.gz -C pyota --strip-components=1 
    - nosetests pyota/test 

私は、アーカイブがpip download終了後に命名されたものを予測する方法を見つけ出すことができなかったので、私はそれをグロブすることにしました。

関連する問題