ホームページ >バックエンド開発 >Python チュートリアル >Python単体テストにpytestを使用する方法

Python単体テストにpytestを使用する方法

WBOY
WBOYオリジナル
2023-08-03 14:45:111307ブラウズ

Python 単体テストに pytest を使用する方法

はじめに:
単体テストはソフトウェア開発において不可欠なタスクであり、コードの品質と安定性を確保するのに役立ちます。 Python の pytest は、強力で使いやすい単体テスト フレームワークです。この記事では、Python の単体テストに pytest を使用する方法を紹介します。

1. pytest をインストールする
まず、pytest をインストールする必要があります。インストールは pip コマンドを使用して簡単に完了できます:

pip install pytest

2. テスト ケースの作成
次に、テスト ケースを作成する必要があります。テスト ケースは、テスト対象のコードの機能を検証するコードのブロックです。

例:
加算、減算、乗算、除算の 4 つの演算を含む単純な計算モジュールをテストするとします。プロジェクト内に test_calculator.py という名前のファイルを作成して、テスト ケースのコードを保存できます。以下はサンプル テスト ケースのコードです。

# test_calculator.py

from calculator import add, subtract, multiply, divide

def test_add():
    assert add(2, 3) == 5

def test_subtract():
    assert subtract(5, 3) == 2

def test_multiply():
    assert multiply(2, 3) == 6

def test_divide():
    assert divide(6, 3) == 2

上記のコードでは、pytest フレームワークによって提供される assert ステートメントを使用して、テスト結果が期待どおりであるかどうかをアサートします。

3. テスト ケースの実行
テスト ケースの作成が完了したら、pytest を使用してこれらのテスト ケースを実行できます。

コマンド ラインでプロジェクト ディレクトリを入力し、次のコマンドを入力してテストします。

pytest

pytest はプロジェクト内のテスト ケースを自動的に見つけて実行します。

実行結果の例:

============================= test session starts ==============================
platform darwin -- Python 3.9.0, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /path/to/project
collected 4 items                                                              

test_calculator.py ....                                                  [100%]

============================== 4 passed in 0.02s ===============================

上記の結果は、作成した 4 つのテスト ケースがすべてテストに合格したことを示しています。

4. 高度な使用法

  1. パラメータ化されたテスト
    異なる入力パラメータの下で関数の動作を検証するために、複数のテスト ケースを作成する必要がある場合があります。 pytest は、繰り返しコードを記述する作業負荷を軽減できるパラメーター化されたテストの機能を提供します。

例:

import pytest

@pytest.mark.parametrize(
    "a, b, expected",
    [
        (2, 3, 5),
        (-1, 1, 0),
        (0, 0, 0),
    ],
)
def test_add(a, b, expected):
    assert add(a, b) == expected

上記のコードでは、@pytest.mark.parametrize デコレーターを使用してテスト ケースをパラメーター化します。パラメータの各セットはテスト対象の関数に自動的に渡され、アサーションが行われます。

  1. 前後操作の設定
    テスト ケースの実行中、テスト ケースの実行前に準備作業を実行し、テスト ケースの実行後にクリーンアップを実行する必要がある場合があります。仕事。 pytest は、これらの操作を実装するための setupteardown などのデコレーターを提供します。

例:

@pytest.fixture(autouse=True)
def setup_and_teardown():
    # 在测试用例运行之前的准备工作
    print("准备工作") 

    yield

    # 在测试用例运行之后的清理工作
    print("清理工作")

上の例では、setup_and_teardown デコレータを使用して、前操作と後操作を持つ関数を定義します。 yield キーワードを使用して、関数が定義されている場所にテスト ケースを挿入します。

結論:
この記事では、Python 単体テストに pytest を使用する方法を紹介します。 pytest をインストールし、テスト ケースを作成し、テスト ケースを実行し、高度な使用方法を使用することで、pytest を使用してコード テストを簡単に実行できます。この記事がソフトウェア開発における単体テスト作業に役立つことを願っています。

以上がPython単体テストにpytestを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。