Python toxを使ってvirtualenvを作ってpytestを実行

Python学習【365日チャレンジ!】190日目のマスターU(@Udemy11)です。

そろそろタチウオの釣果情報が耳に入ってきたので、早起きして短時間のタチウオ刈りに行ってきました。

だいたい釣れる時間が決まっているので、その時間に釣れなければ釣れないだろうなと思いながら、キャストを繰り返すこと約30分。

そろそろかな?という時間帯に入った頃にようやくアタリがあるも2回ほどヒットせず、3回目のアタリでようやくヒット。

そこからはアタリが無くなって、10分ほど粘ってから終了。1時間足らずの釣行でなんとか1匹ゲットすることができました。

タチウオの釣果

周りにも釣り人が結構いましたが、あまり釣れていなかったので、ちょっとまだ早いのかもしれませんね。

それでは今日もPython学習をはじめましょう!

昨日の復習

昨日は、setuptoolsでpytestのテストを実行する方法を学習しました。

unittestのときとテストファイルは同じで、setup.cfgを作ってpytestを実行できましたが、setup.pyのコードを少し変更して、setup.cfgにコードを追加するやり方もありました。

詳細については、昨日の記事をごらんください。

今日は、仮想環境(vertualenv)を使ってテストを実行してパッケージを作成できるtoxを学習します。

toxのインストール

まずはtoxを下記コマンドでインストールします。

pip install tox

インストールが完了すれば、公式サイトの使い方例を参考にtox.iniを作成します。

tox.ini

まずは、toxで扱うvirtualenvやテストファイルの設定を書くtox.iniを作成します。

[tox]
envlist = py37

[testenv]
deps = pytest
commands = pytest -s tests

toxの公式サイトにある【Basic example】を参考にコードを記述しました。

作成するパッケージは昨日までと同じように、対話アプリのJarvisです。

テストファイルはtest_robot.pyで中身も昨日までと同じなので、こちらの記事を参考にしてください。

setup.py

setup.pyは、昨日少し変更したコードを使います。

from setuptools import setup, find_packages

setup(
    name='jarvis',
    version='1.0.0',
    packages=find_packages(),
    package_data={'jarvis':['templates/*.txt']},
    url='http://udemyfun.com',
    license='Free',
    author='MasterU',
    author_email='master@udemyfun.com',
    description='First package',
    tests_require=['pytest'],
)

これで準備は完了です。

toxの実行

toxの実行は、ターミナルでtoxと入力して実行するだけです。

コマンドを実行すれば、virtualenvを作成し、必要なライブラリをインストールしてテストを実行し、パッケージにまとめてくれます。

Python toxを使ってvirtualenvを作ってpytestを実行

環境を変える

大きなプロジェクトでないかぎり、virturalenvを使ったテストは必要なさそうな感じがしますが、自分のPython環境ではなく、必要なライブラリだけが整っているPython環境でテストをすることは大切です。

自分だけが使うプロジェクトなら問題はありませんが、基本的にクライアントがいるのが普通ですので、Pythonでアプリを開発したいのなら、toxなども使えるようになっておいたほうがいいでしょう。

以前学習したvirtualenvが出てきたので、この機会に復習しておこうと思います。

現在テストをたくさん学習していますが、あまりの多さにびっくりしてしまいますが、Pythonがそれだけしっかりしたプログラムだということだと思うので、気を抜かず、学習を継続していきましょう。

それでは明日もGood Python!