2017-10-02 1 views
0

私は私のプロジェクトのために(私が言うことができる限り)Raspberry Pi特定ライブラリ(smbus)を使用しています。 pytestを使って私のマシン上のソフトウェアと私の学校のサーバー上のgitlab-ciの両方のソフトウェアをテストしたいと思います。それは問題ではありませんが、これは宿題ではないクラブプロジェクトのためのものです。pytestはインポートの依存関係を無視できますか?私はユニットテストPiコードにしたい

私の環境の説明:

私は私の開発環境のためのUbuntu 17.04/PyCharmを使用しています。 私がアクセスできるgitlabランナーはドッカーベースです(環境を選択します)。

上記の2つのどちらも、smbusの能力もi2c通信の能力もありません。

pytestにインポートの前後にtry/exceptを追加しなくてもsmbusのインポートを無視することができるかどうか疑問に思っていますか?

ありがとうございました。

+0

'try' /' except'について悪い点はありますか? –

答えて

0

あなたが本当にtry/acceptを避けたい場合は、関数は、インポートを返すかもしれない...

def get_smbus(): 
    import smbus 
    return smbus 

smbus = get_smbus() 

これは、あなたに簡単にget_smbus機能を上書きするモックライブラリを使用することができます。

私は個人的にtry/exceptとキャッチImportErrorを使用します。

+0

ありがとうございます。私はtry/exceptが悪い習慣であると仮定しました。 –

+0

tryは実際には本当に良い練習です - あなたが特定の例外をキャッチする限り。すべてのエラーをキャッチして無視するのは悪い習慣です。 – Shadow

関連する問題