Python学習【365日チャレンジ!】180日目のマスターU(@Udemy11)です。
2017年にバブルが弾けたビットコインが、知らない間に100万円を超えてじわりじわりと価格が上がっていることはあまり知られていないかもしれませんが、まだ仮想通貨バブルの頃まで戻ってはいません。
投資というより、投機に近い仮想通貨ですが、今が投資するチャンスかも知れませんね。
なくなってもいい余剰資金で仮想通貨を購入しておけば、数年後にはちょっとしたお小遣いになっているかもしれませんよ。
昨日の復習
昨日は、pytestでsetupとteardownを使う方法を学習しました。
テストの前後になにかの処理をしたいときにはsetupとteardownを使いましたが、pytestでは、いくつかのテストが始まる前と最後のテストが終了したときに処理をさせることができました。
処理をしていることがわかりやすいようにprint
出力でコメントを出力しましたが、テストの際に使用頻度の高いやり方なので、しっかりとマスターしておきましょう。
pytestのsetupとteadowmの使い方の詳細は、昨日の記事をごらんください。
今日は、pytestでテストをスキップする方法を学習します。
普通にスキップ
unittestと同じように、デコレーターを使って単純にテストをスキップすることができます。
import pytest
import calculation
class TestCal(object):
def setup_method(self,method):
print('method={}'.format(method.__name__))
self.cal = calculation.Cal()
def teardown_method(self, method):
print('method={}'.format(method.__name__))
del self.cal
def test_add_and_double(self):
assert self.cal.add_and_double(1, 3) == 8
@pytest.mark.skip(reason='no need')
def test_add_and_double_raise(self):
with pytest.raises(ValueError):
self.cal.add_and_double('1', '3')
スキップするテストは2つ目で、ハイライトしている18行目にデコレーターのpytest.mark.skip
を使用します。
引数のreason
には、スキップする理由を付け加えることが可能です。
この出力結果は次のとおりです。
1つ目のテストの前後にsetup
とteardown
でプリント出力があり、最後にスキップのreason
が出力されています。
コンソールの出力はPycharmのバージョンによって違いますが、きちんとスキップ理由を出力するには、Pycharmの【Edit Configrations】からpytestのファイルを選び、【Additional Arguments:】に-rs
と入力して【OK】をクリックします。
これで同じテストファイルを実行すると、short test summary info
が表示されます。
続いてunittestでもやった条件をつけたスキップのコードを書いてみましょう。
条件をつけてスキップ
ある条件のときだけテストをスキップするには、グローバル変数を定義して、定義した条件にあっていれば、テストをスキップするというコードを書きました。
すべてのコードを書くと、コードが長くなってしまうので、付け加える行とコードだけ書いてみます。
is_release = True
@pytest.mark.skipif(is_release=True, reason='no need')
グローバル変数の定義する4行目を加えて、18行目のskip
をskipif
に変えて、引数に条件を入れてやることで、条件を満たしたときだけテストをスキップします。
行を挿入しているので、short test summary info
では、20行目になっていますが、テストがスキップされたのがわかるかと思います。
もちろん、条件をTrue
からFalse
に変更すれば、テストはスキップされずに実行されるので、一度試してみてください。
自分で試す
現在私がPythonを学習しているのは、シリコンバレーでバリバリ活躍している酒井さんのPython講座です。
内容がすごく濃いので終了するまでにかなり時間がかかりますが、ひととおり学習できればかなりPythonのスキルが向上すると思います。
ただ、レクチャーを見ているだけでは自分のスキルにはなりません。
レクチャーを見て、自分でもコードを書いて、さらに疑問に思うことや試してみたいことを自分で試すことが大切です。
やってみないことにはどのように動くかを体験できませんし、よほどの天才でない限り、人は体験したことしか実感できません。
体験することで理解が深まるので、ぜひ、いろいろと試してみましょう!
それでは明日もGood Python!