pytestでマーカーとアノテーションを効果的に使用する方法

この記事では、Pythonでテストフレームワークとしてよく使用される`pytest`について、特にマーカーとアノテーションの使用法を深掘りします。実用的なコード例とその解説、応用例を含めて解説を行います。

目次

pytestとは

`pytest`は、Pythonで最も人気のあるテストフレームワークの一つです。柔軟性が高く、シンプルなテストから複雑なテストまで対応しています。

インストール方法

PyPIからインストールすることができます。

# pytestをインストール
pip install pytest

マーカーとは

`pytest`のマーカーはテスト関数にメタデータを付与する仕組みです。マーカーを利用することで、テストケースをカテゴライズしたり、特定のテストだけを実行したりすることが可能です。

基本的なマーカーの使い方

`syntax`という名前のマーカーを作成する基本的な使い方は以下です。

import pytest

# syntaxというマーカーを付与
@pytest.mark.syntax
def test_syntax():
    assert True

マーカーの実行

次のように`pytest`コマンドでマーカーを指定して実行することができます。

# syntaxマーカーがついたテストだけを実行
pytest -m syntax

アノテーションとは

Pythonにおけるアノテーションは、関数の引数や戻り値についての情報を提供する仕組みです。`pytest`では、アノテーションを使用してより詳細なテストを行うことが可能です。

アノテーションの基本的な使い方

例えば、関数の引数が整数で、戻り値が文字列であるとアノテーションで示すことができます。

def greeting(name: str) -> str:
    return "Hello, " + name

応用例1:マーカーとアノテーションの組み合わせ

マーカーとアノテーションを組み合わせることで、テストの挙動をより詳細に制御することが可能です。

import pytest

# syntaxというマーカーとアノテーションを組み合わせた例
@pytest.mark.syntax
def test_syntax_annotation(num: int) -> None:
    assert num == int(num)

応用例2:複数マーカーの使用

複数のマーカーを一つのテスト関数に適用することも可能です。

import pytest

# syntaxとerrorという2つのマーカーを適用
@pytest.mark.syntax
@pytest.mark.error
def test_multiple_markers():
    assert True

まとめ

この記事では、`pytest`でのマーカーとアノテーションの使い方を詳しく解説しました。これらの機能を使うことで、より柔軟かつ詳細なテストが可能になります。是非とも日々のテスト作成に活用してみてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次