私は共有ライブラリをboost :: python(C++)で作成しました。 内部のC++関数については、私が動作していることをチェックするユニットテストがあります。 ここでは、私が正しくPythonインターフェイスを実装しているかどうかを確認するためにunit-testを使いたいと思います。 これは私がPythonパッケージunittest
を使用して考えることについて考えました。Pythonでboost :: pythonライブラリのユニットテスト
今私のフォルダの設定は、おおよそ次のとおりです。
project
|
-- C++ source (library and boost::python stuff)
|
-- build (here the shared library is located)
|
-- Test (here I have the python classes that should test the interface)
は、テストフォルダは、ライブラリのさまざまな側面をテストする小さなPythonモジュールの多くを含む、Pythonインタフェースの構造を反映するいくつかのサブフォルダを持っています。
ので今質問:私はテストに共有ライブラリをimport
にはどうすればよい
?私がこれまで試したどのような
私test_main.py
import sys
sys.path.insert(0,'../build')
にあった。しかし、これはテストフォルダ内のモジュールのためには役立ちません。とにかくこのパスをテストコードにハードコーディングするのは面倒なようです。私はまた、テストがそれを再びアンインストールできなかったことを知るために、テストされていないライブラリをインストールしたくありません。
を持っていると思いますされていることを確認し、これが私のマシンでは動作しません。私がルートディレクトリにいて、Pythonシェルを開いて、 'import build.blah'と入力すると動作します。しかし、このファイルで 'import build.blah'を使って' python Test/my_test.py'を呼び出しても動作しません。 – NOhs
...あなたのtest.pyは 'from build.blah import blah'を持っているべきです –
これは問題ではありません(私はあなたの提案を試みました)。それは "no module named build"という文句を言う。 'Test/my_test.py'では親フォルダから呼び出されていても' Test'との相対的な関係にあります。 – NOhs