pytestの中国語チュートリアルをやりたいのですが、最初にチュートリアルChatGPTの概要を教えてください
もちろん、チュートリアルについて中国語を作成することは、特に母国語が中国語であるIT学習者にとっては良い考えです。 考えられる概要は次のとおりです。pytest
Pytest中国語チュートリアルの概要
1. イントロダクション
- とは
pytest
pytest
他のテストフレームワークとの比較- 選ぶ理由
pytest
2. インストールと設定
- インストール方法
pytest
- プロジェクトを初期化する
pytest
- 構成ファイルの解釈
3. 基本的な考え方
- テスト_ケース
- テストフィクスチャ(フィクスチャ)
- 断言(Assertions)
4.最初のテストを書く
- 単純な関数を作成する
- テストを書く
- テストを実行する
5.フィクスチャを使用する
- フィクスチャとは
- フィクスチャの作成方法と使用方法
- 備品の範囲
6. パラメトリック検定
- パラメトリック検定とは
- パラメトリック検定の実行方法
- パラメトリックフィクスチャ
7. マークとラベル
- マークに使用
pytest.mark
- カスタムタグ
- 特定のタグのテストを実行する
8. 例外を処理する
- 例外処理の使用
pytest.raises
- 処理の警告を使用する
pytest.warns
9. プラグインと拡張機能
- 一般的に使用されるプラグイン
pytest
- プラグインをインストールして使用する方法
10.高度なテーマ
- 並列テスト
- コマンド ライン オプションを使用する
- CI/CD パイプラインへの統合
11. ベストプラクティス
- コード編成
- テストカバレッジ
- ログとレポート
12. 結論と次のステップ
- 概要
- その他の学習リソース
虫垂
- よくあるご質問
- リソース
このアウトラインは比較的基本的なものであり、対象者や目的に応じて調整できます。 これが中国語のチュートリアルプロジェクトを始めるのに役立つことを願っています! このチュートリアルをYouTubeに投稿する予定がある場合は、より多くのIT学習者や潜在的な顧客にリーチするための優れた方法にもなります。pytest
はじめにpytestChatGPTとは何かを詳しく説明してください
もちろん、以下は、チュートリアルの「はじめに」セクションのサブセクションとして使用できる「pytestとは」セクションの詳細な説明です。
パイテストとは
定義
pytest
は、Pythonプログラミング言語用のオープンソースのテストフレームワークです。 シンプルで拡張可能なテストケースを書くために使用され、豊富なプラグインスタックがあります。
主な機能
- シンプルさ:これにより、単純なステートメントと自動検出テストを使用できるため、多くの定型コードを回避できます。
pytest
assert
- 柔軟性:単体テスト、統合テスト、エンドツーエンドテストなどに使用でき、ほぼすべてのタイプのソフトウェアのテストが可能です。
pytest
- 豊富なプラグインシステム:サードパーティのプラグインが多数あり、独自のプラグインを開発するのも簡単です。
テストの種類
- 単体テスト: テスト可能な最小の部分 (通常は関数またはメソッド) をテストします。
- 機能テスト:ソフトウェアの機能の側面をテストします。
- 統合テスト: 複数のコンポーネントまたはシステムの統合をテストします。
- エンドツーエンドのテスト: 実際の状況でアプリケーション全体の動作をテストします。
他のテストフレームワークとの比較
- ORと比較して、よりクリーンなAPIとより強力な機能を提供します。
unittest
nose
pytest
使用シナリオ
- Web アプリケーションのテスト
- データサイエンス/機械学習モデルの検証
- スクリプト検証の自動化
- 原薬テスト
コミュニティとサポート
pytest
複数のチャネル(GitHub、スタックオーバーフロー、専用フォーラムなど)を通じてサポートを受けることができるアクティブなオープンソースコミュニティがあります。
この説明は、初心者が基本的な概念とアプリケーション シナリオを理解するのに役立つチュートリアルの一部として使用できます。 お役に立てれば!pytest
ChatGPTの他のテストフレームワークと比較したpytestの導入について詳しく説明してください
もちろん、他の主要なPythonテストフレームワークと比較するための詳細な説明があります。 このコンテンツは、チュートリアルの「概要」セクションのサブセクションとして使用できます。pytest
pytest と他のテストフレームワークとの比較
1. 単体テスト
- 構文: オブジェクト指向の方法でテストを整理すると、より多くの定型コードになる可能性があります。 より簡潔な関数型プログラミングスタイルを可能にします。
unittest
pytest
- アサーション:、などの特殊なアサーションメソッドがあり、より自然なステートメントを使用できます。
unittest
assertEqual()
assertTrue()
pytest
assert
- テスト検出: で始まる関数は自動的に検出できるため、テスト スイートにテストを手動で追加する必要があります。
pytest
test_
unittest
2.鼻/鼻2
- メンテナンス:メンテナンスは行われなくなりましたが、引き続き適切にメンテナンスおよび更新されています。
nose
pytest
- プラグイン:豊富なプラグインもありますが、プラグインシステムはよりアクティブで多様です。
nose
pytest
- 柔軟性:パラメトリックテスト、より複雑なフィクスチャなどのより高度な機能をサポートします。
pytest
3. ドキュメントテスト
- 適用性: 単純なテスト シナリオに適しており、通常はドキュメントに埋め込まれています。 より複雑で包括的なテストのニーズに適しています。
doctest
pytest
- 拡張性:スケーラビリティはスケーラビリティを念頭に置いて設計されていませんが、プラグインや組み込み機能を使用して簡単に拡張できます。
doctest
pytest
4. TestNG/JUnit(Java)
- 言語の制限: TestNG と JUnit は Java 用のテストフレームワークですが、Python 専用に設計されています。
pytest
- 使いやすさ:Javaテストフレームワークと比較して、特にJavaエコシステムに精通していない人にとっては、一般的にセットアップと使用が簡単です。
pytest
5. QUnit/Mocha(JavaScript)
- 言語の制限:これらはJavaScriptのテストフレームワークであり、さまざまなプログラミング言語が提供されています。
pytest
- フロントエンドとバックエンドの分離:フルスタックプロジェクトで作業している場合は、フロントエンドとバックエンドの両方のテストフレームワークを使用することをお勧めします。 これは、バックエンド(Python)に最適です。
pytest
この比較は、初心者が他のテストフレームワークの長所と短所をより完全に把握して、より多くの情報に基づいた選択を行うのに役立ちます。 これが、チュートリアルを作成するときに貴重な情報を提供するのに役立つことを願っています。pytest
pytest
導入部でpytestChatGPTが選ばれた理由を詳しく説明してください
もちろん、ここでは「なぜ PyTest なのか」セクションの詳細な説明があります。 これは、チュートリアルの「はじめに」セクションの重要なサブセクションとして機能します。
なぜピテストなのか
1.簡潔な構文
pytest
複雑なアサーションメソッドを覚えていなくても、単純なステートメントを使用してアサートできます。assert
2. 自動テスト検出
- 簡単なコマンドで、それから始まるすべてのテスト機能を自動的に検出して実行できるため、テストスイートを手動で整理する必要がなくなります。
pytest
test_
3.強力なフィクスチャシステム
pytest
のフィクスチャシステムは柔軟性があり、データベーステスト、ファイル操作テストなどに役立つテスト環境のセットアップに使用できます。
4. パラメトリック検定
pytest
パラメーター化のサポートにより、1 つのテスト関数で複数のテスト ケースを実行でき、コードの再利用が向上します。
5.豊富なプラグインシステム
- 利用可能なサードパーティのプラグインは多数あり、独自のプラグインを開発するのも簡単です。
6.クロスプラットフォームおよび継続的インテグレーションのサポート
pytest
ほぼすべてのオペレーティングシステムとPython環境で実行され、ほとんどのCI / CDツールに簡単に統合できます。
7.コミュニティサポート
pytest
大規模で活発なコミュニティを持つことは、ソリューションとベストプラクティスを簡単に見つけることができることを意味します。
8.複数のテストタイプ
- 単体テストから統合テストまで、万能です。 APIテストでもWeb UIテストでも、あなたはその仕事をします。
pytest
pytest
9.簡単に始められます
- 初心者と経験豊富な開発者の両方が簡単に始めることができます。 ドキュメントとチュートリアルのリソースも非常に豊富です。
pytest
10.商用プロジェクトとオープンソースプロジェクトの両方に適用可能
- 小規模なオープンソースプロジェクトであろうと大規模な商用アプリケーションであろうと、信頼できる選択肢です。
pytest
これらの理由が組み合わさって、Pythonテストフレームワークに最適です。 このサブセクションを通じて、視聴者は、なぜ学習して使用する価値があるのか をより明確に理解できます。 これがあなたのチュートリアルに役立つことを願っています!pytest
pytest
インストールと構成を使用してpytestChatGPTをインストールする方法を詳しく説明してください
もちろん、以下は「pytestのインストール方法」セクションの詳細な説明です。 これは、チュートリアルの「インストールと構成」セクションの主要なサブセクションとして機能します。
pytestのインストール方法
1. システム要件
- システムに Python (バージョン 3.6+ 推奨) と pip (Python パッケージ マネージャー) がインストールされていることを確認します。
2.pipを使用してインストールします
- ターミナルを開きます(WindowsユーザーはコマンドプロンプトまたはPowerShellを使用でき、MacおよびLinuxユーザーはターミナルを使用できます)。
- 次のコマンドを入力して実行します。 コードをコピーする: これにより、Python パッケージ インデックス (PyPI) から最新バージョンがダウンロードおよびインストールされます。
pip install pytest
pytest
3. インストールを確認する
- インストールが完了したら、次のコマンドを入力して、インストールが成功したことを確認します。 cssCopy コードバージョン情報が表示された場合、インストールは成功しています。
pytest --version
pytest
4. (オプション) プラグインをインストールする
pytest
次のコマンドでインストールできるプラグインはたくさんあります: cssCopy コードpip install pytest-[插件名]
5. (省略可能) 仮想環境にインストールする
- やなどの仮想環境を使用している場合は、上記のコマンドを実行する前に、まず仮想環境をアクティブ化してください。
venv
conda
pip
6. IDEの統合
- 最近のほとんどのIDE(PyCharm、VSCodeなど)はそれをサポートしており、IDEの設定または構成でテストフレームワークとして選択するだけです。
pytest
pytest
このサブセクションでは、初心者がこのテストフレームワークをより簡単に使い始めるのに役立つオプションの手順といくつかの追加情報を含め、さまざまな環境にインストールする方法について詳しく説明します。 これが、チュートリアルを作成するときに貴重な情報を提供するのに役立つことを願っています。pytest
pytest
pytestプロジェクトChatGPTの初期化のインストールと構成について詳しく説明してください
もちろん、以下は「Pytestプロジェクトの初期化」のセクションの詳細な説明です。 これは、チュートリアルの「インストールと構成」セクションの重要なサブセクションになります。
pytest プロジェクトを初期化する
1. プロジェクトディレクトリを作成する
- ワークスペースで、pytest プロジェクトのルート ディレクトリとして新しいディレクトリを作成します。 バッシュコピーコード
mkdir my_pytest_project cd my_pytest_project
2. 仮想環境を初期化する (オプション)
- 分離された環境で依存関係を管理する場合は、仮想環境を作成できます。
- venv を使用します (推奨)。コードをコピーする
python3 -m venv venv
- 仮想環境をアクティブ化するには:
- WindowsMathematicaCopy code
.\venv\Scripts\Activate
- Mac/LinuxbashCopy code
source venv/bin/activate
- WindowsMathematicaCopy code
- 仮想環境をアクティブ化するには:
- condaluaCopy コードを使用する
conda create --name my_pytest_env python=3.8 conda activate my_pytest_env
- venv を使用します (推奨)。コードをコピーする
3.pytestをインストールします
- pytestをまだインストールしていない場合は、今がインストールするときです。 コードをコピーする
pip install pytest
4. 最初のテスト ファイルを作成する
- プロジェクト ディレクトリで、通常は で始まる新しい Python ファイルを作成します。 pythonCopy code
test_
test_example.py
# 内容示例 def test_addition(): assert 1 + 1 == 2
5. テストを実行する
- プロジェクトのルートディレクトリでターミナルを開き、次のコマンドを実行します。 コードをコピーする すべてが正しく設定されている場合は、テストの実行と合格が表示されます。
pytest
6.pytest構成ファイルを追加します(オプション)
- またはファイルを作成して、プロジェクト固有の pytest 設定を保存することができます。
pytest.ini
pyproject.toml
- pytest.ini iniCopy コードの例
[pytest] addopts = --verbose
- pyproject.toml サンプル tomlコピーコード
[tool.pytest.ini_options] addopts = "--verbose"
- pytest.ini iniCopy コードの例
7. IDE統合(オプション)
- PyCharm や VSCode などの IDE を使用する場合は、設定でテスト フレームワークとして pytest を選択し、適切な仮想環境 (使用可能な場合) をポイントしてください。
このサブセクションでは、プロジェクトディレクトリの作成から最初のテストの実行まで、オプションの詳細設定を行う方法について順を追って説明します。 これにより、初心者がpytestプロジェクトを開始するための明確でわかりやすいパスが提供されます。 これがあなたのチュートリアルに役立つことを願っています!
ChatGPTのインストールと設定を含む設定ファイルを詳しく説明
もちろん、「プロフィール説明」セクションの詳細はこちらです。 これは、チュートリアルの「インストールと構成」セクションのサブセクションにすることができます。
構成ファイルの解釈
プロジェクトでは、構成ファイルを使用してテストの動作をカスタマイズできます。 最も一般的に使用される構成ファイルは ですが、またはを使用することもできます。pytest
pytest.ini
pyproject.toml
setup.cfg
1.パイテスト.ini
これは、 専用の構成ファイルです。 INI 形式を使用します。pytest
- iniCopy コードの例
[pytest] addopts = --verbose markers = slow: marks tests as slow (deselect with '-m "not slow"')
- 主なオプション
addopts
: 既定のコマンド ライン オプションを追加します。markers
:分類またはラベルテスト用のカスタムタグ。
2. pyproject.toml
これは、Python プロジェクト用のさまざまなツール用のより一般的な構成ファイルです。
- コード例
[tool.pytest.ini_options] addopts = "--verbose" markers = ["slow: marks tests as slow"]
- 主なオプション
- 同じ。
pytest.ini
- 同じ。
3. セットアップ.cfg
これも一般的な構成ファイルですが、古いものです。
- cfgコピーコードの例
[tool:pytest] addopts = --verbose markers = slow: marks tests as slow
- 主なオプション
- 同じ。
pytest.ini
- 同じ。
一般的な構成オプション
testpaths
: テスト検索のディレクトリを指定します。python_files
: テスト ファイルのモードを指定します。python_classes
: テスト クラスのモードを指定します。python_functions
: テスト機能をテストするモードを指定します。xfail_strict
: 失敗が予想されるテストを厳密に処理します。junit_family
: JUnit レポートの形式を指定します。
詳細設定
filterwarnings
: 警告の表示をコントロールします。log_format
: ログ形式をカスタマイズします。log_level
: ログレベルを設定します。
このサブセクションでは、さまざまな種類の構成ファイルの使用方法と、使用可能なさまざまな構成オプションについて詳しく説明します。 これは、初心者がテスト環境をカスタマイズする方法をよりよく理解するのに役立ちます。 これが、チュートリアルを作成するときに貴重な情報を提供するのに役立つことを願っています。pytest
pytest
pytestが一般的に使用するプラグインと、どのChatGPTプラグインがスナップショット警告-未使用パラメータに関連しているかを詳細に説明してください
一般的に使用されるpytestプラグイン
1. Pytest-Cov
- 目的: コード カバレッジを測定するために使用されます。
- インストール:
pip install pytest-cov
- 使用する:
pytest --cov=myproject
2. pytest-xdist
- 目的: テストを並行して実行し、テスト速度を向上させるために使用されます。
- インストール:
pip install pytest-xdist
- 使用する:
pytest -n 4
3.ピテストジャンゴ
- 目的: Django プロジェクトのテストに使用します。
- インストール:
pip install pytest-django
- 使用: Django プロジェクトで直接使用する
pytest
4.パイテストモック
- 目的: 単純なモック オブジェクトを提供します。
- インストール:
pip install pytest-mock
- 使用:テスト機能でフィクスチャを使用します。
mocker
5. pytest-html
- 目的: HTML 形式でテスト レポートを生成します。
- インストール:
pip install pytest-html
- 使用する:
pytest --html=report.html
6. pytest-bdd
- 目的: 動作駆動開発 (BDD) をサポートします。
- インストール:
pip install pytest-bdd
- 使用する:ガーキン言語でテストを書く。
7.ピテストセレン
- 使用:セレンテスト用。
- インストール:
pip install pytest-selenium
- 使用:テストでフィクスチャを使用します。
selenium
8.パイテストフラスコ
- 目的: Flask アプリをテストします。
- インストール:
pip install pytest-flask
- 使用:フラスコプロジェクトで直接使用する
pytest
9. pytest-asyncio
- 目的: 非同期コードをテストするために使用します。
- インストール:
pip install pytest-asyncio
- 用途: デコレータを使用します。
@pytest.mark.asyncio
10. Pytest-スナップショット
- 目的: テストのスナップショットを作成および比較するために使用されます。
- インストール:
pip install pytest-snapshots
- 使用:フィクスチャを使用します。
snapshot
パラメータについてsnapshot-warn-unused
このパラメータはプラグインに関連しています。 このプラグインを使用してテストスナップショットを作成するときに、未使用のスナップショットがある場合、useパラメーターはテスト出力に警告を表示します。pytest-snapshots
--snapshot-warn-unused
- インストール:
pip install pytest-snapshots
- 使用する:
pytest --snapshot-warn-unused
このパラメーターは、不要になったテスト スナップショットを特定してクリーンアップし、テスト スイートを整理するのに役立ちます。
この情報が、チュートリアルを作成するときに貴重なコンテンツを提供するのに役立つことを願っています。pytest
エラー:要件を満たすバージョンが見つかりませんでしたpytestスナップショット(バージョンから:なし)ChatGPT
申し訳ありませんが、間違えました。 実際に存在する公式のpytestプラグインではありません。 スナップショットテストを行う場合は、(最終的な ‘s’がないことに注意してください)または.pytest-snapshots
pytest-snapshot
snapshottest
1. Pytest-スナップショット
- 目的: テストのスナップショットを作成および比較するために使用されます。
- インストール:
pip install pytest-snapshot
- 使用:フィクスチャを使用します。
snapshot
2.スナップショットテスト
- 目的: 特に Django のテストのスナップショットを作成および比較するために使用されます。
- インストール:
pip install snapshottest
- 使用:からねじって使用します。
snapshottest.TestCase
self.assertMatchSnapshot()
これらのライブラリは、 などの特定のパラメータに対して同様の機能を持つ場合がありますが、特定のパラメータ名は異なる場合があります。 詳細については、これらのライブラリのドキュメントを参照してください。snapshot-warn-unused
前のエラーで申し訳ありませんが、今回は情報がより正確で有用であることを願っています。
インポートエラー: ‘フラスコ’チャットGPT から名前 ‘_request_ctx_stack’ をインポートできません
このエラーは通常、Flask パッケージからインポートしようとしたときに発生します。 これは通常、Flaskのバージョンがコードまたは依存ライブラリと互換性がないことが原因です。_request_ctx_stack
考えられる解決策は次のとおりです。
1.フラスコを更新します
Flaskを最新バージョンに更新してみてください。
バッシュコピーコード
pip install --upgrade Flask
2. 依存関係を確認する
プロジェクトが特定のバージョンの Flask に依存している場合は、またはファイルで正しいバージョンが指定されていることを確認してください。requirements.txt
setup.py
3.コードを確認します
コードがFlaskから直接インポートしようとしていないことを確認してください、あなたは一般的にこの内部オブジェクトに直接アクセスする必要はありません。_request_ctx_stack
4.他のライブラリを確認します
Flask に依存するサードパーティのライブラリを使用している場合は、このライブラリが問題の原因である可能性があります。 これらのライブラリを更新するか、Flask との互換性を確認してください。
5. 仮想環境
正しい Python 仮想環境でコードを実行していることを確認します。 場合によっては、システムレベルの Python 環境とプロジェクトレベルの仮想環境が競合を引き起こす可能性があります。
6.クリーンアップ
ディレクトリとファイルを削除してから、プログラムを再実行してください。__pycache__
.pyc
バッシュコピーコード
find . -name "*.pyc" -exec rm -f {} \; find . -name "__pycache__" -exec rm -rf {} \;
7. ドキュメントを確認する
この問題に関する具体的な情報については、Flask および関連ライブラリのドキュメントを確認してください。
上記の解決策のいずれも問題を解決しない場合は、再現可能な最小限の問題でコードサンプルを作成し、Flaskの問題トラッカーまたは関連コミュニティに相談することをお勧めします。
テストケースチャットGPTの基本的な考え方について詳しく教えてください
もちろん、以下は「テストケース」セクションの詳細な説明です。 これは、チュートリアルの「基本概念」セクションの主要なサブセクションとして機能します。
テスト_ケース
定義
テスト ケースは、システム アプリケーションまたはソフトウェア アプリケーションが特定の要件を満たし、正しく動作するかどうかを判断する一連の条件または変数です。 pytest では、テスト ケースは通常、プレフィックスが付いた名前の Python 関数です。test_
構造
基本的な pytest テストケースは次のようになります。
pythonCopy code
def test_addition(): assert 1 + 1 == 2
主要コンポーネント
- テスト関数: で始まる関数。
test_
- アサーション: キーワードを使用して、テスト対象のコードの動作を検証します。
assert
- フィクスチャ:オプションのプリセットまたは構成。
- マーカー: テストを分類または選択的に実行するためのオプションのタグ。
断言
アサーションはテストケースの中核です。 これらは、テスト対象のコードが期待される結果を返すことを確認するために使用されます。
pythonCopy code
def test_subtraction(): assert 5 - 3 == 2
調度
フィクスチャは、テスト環境またはステータスを設定するために使用されます。 たとえば、データベース接続が必要な場合は、フィクスチャを使用してこの接続を作成および破棄できます。
pythonCopy code
@pytest.fixture def database_connection(): conn = create_connection() yield conn conn.close() def test_database_query(database_connection): assert database_connection.query("SELECT 1") == 1
マーカー
タグを使用してテスト ケースにメタデータを追加し、必要に応じてコマンド ライン オプションを使用して実行することができます。
pythonCopy code
@pytest.mark.slow def test_large_computation(): assert compute_large_value() == "expected_value"
低速テストを実行するには:
バッシュコピーコード
pytest -m slow
パラメーター
パラメーター化を使用すると、複数のデータ セットで同じテスト ケースを実行できます。
pythonCopy code
@pytest.mark.parametrize("input,expected", [(5, 25), (2, 4), (3, 9)]) def test_squares(input, expected): assert input ** 2 == expected
このサブセクションでは、テストケースの定義、構造、主要コンポーネント、PyTestでの実装方法など、テストケースの包括的かつ詳細な説明を提供します。 これにより、初心者が最も困難な学習の旅を始めるための明確でわかりやすいパスが提供されます。 これがあなたのチュートリアルに役立つことを願っています!
テストフィクスチャ(ChatGPT)の基本的な概念について詳しく説明してください。
もちろん、以下は「テストフィクスチャ」セクションの詳細な説明です。 これは、チュートリアルの「基本概念」セクションの重要なサブセクションとして機能します。
テストフィクスチャ(フィクスチャ)
定義
pytestでは、フィクスチャを使用して、関数のテストに必要な事前設定された条件または環境を設定します。 データベース接続の作成、変数の初期化、ファイルの設定、またはその他の必要なセットアップまたはクリーンアップ操作の実行に使用できます。
フィクスチャの作成
デコレータを使用してフィクスチャを定義します。 このフィクスチャ関数は、必要なリソースを返します。@pytest.fixture
pythonCopy code
import pytest @pytest.fixture def example_data(): return {"key": "value"}
フィクスチャを使用する
テスト関数でフィクスチャを使用するには、フィクスチャ関数名をパラメータとしてテスト関数に渡す必要があります。
pythonCopy code
def test_example(example_data): assert example_data["key"] == "value"
フィクスチャの範囲
パラメータを設定することで、フィクスチャのライフサイクルを制御できます。scope
- 関数レベル(デフォルト): 各テスト関数のフィクスチャを再実行します。
- モジュール レベル: モジュール全体で 1 回だけ実行されます。
- セッション レベル: テスト セッション全体で 1 回だけ実行されます。
pythonCopy code
@pytest.fixture(scope="module") def example_data(): return {"key": "value"}
パラメトリックフィクスチャ
パラメータを使用してフィクスチャをパラメータ化できます。params
pythonCopy code
@pytest.fixture(params=[1, 2, 3]) def example_data(request): return request.param
フィクスチャの依存関係
1つのフィクスチャが他のフィクスチャに依存する場合があります。
pythonCopy code
@pytest.fixture def dependent_fixture(example_data): return example_data["key"].upper()
クリーンアップに歩留まりを使用する
このステートメントを使用して、フィクスチャ内のリソースをクリーンアップできます。yield
pythonCopy code
@pytest.fixture def database_connection(): conn = create_connection() yield conn conn.close()
フィクスチャの自動使用
テスト セッションまたはモジュール全体にフィクスチャを自動的に適用するために使用します。autouse=True
pythonCopy code
@pytest.fixture(autouse=True) def setup_and_teardown(): # Setup code yield # Teardown code
このサブセクションでは、フィクスチャのライフサイクルを作成、使用、パラメータ化、および管理する方法など、テストフィクスチャのすべての側面について詳しく説明します。 これは、初心者がpytestでフィクスチャを使用して、より堅牢で保守しやすいテストコードを作成する方法をよりよく理解するのに役立ちます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTの基礎となる概念の主張を詳しく説明してください
もちろん、以下は「アサーション」セクションの詳細な説明です。 これは、チュートリアルの「基本概念」セクションの主要なサブセクションとして機能します。
断言(Assertions)
定義
アサーションは、条件が真であることを確認するためにテストで使用されるステートメントです。 アサーションが失敗した場合 (つまり、条件が false の場合)、テストは失敗し、エラー レポートが生成されます。 pytest では、Python の組み込みステートメントを使用してアサーションを行うことができます。assert
基本的な使い方
最も簡単なアサーションは、式が真であるかどうかを確認することです。
pythonCopy code
def test_addition(): assert 1 + 1 == 2
アサーション式
基本的な等号チェックに加えて、他の有効な Python 式を使用できます。
pythonCopy code
def test_collection(): assert 1 in [1, 2, 3]
多重断言
テスト ケースには複数のアサーションを含めることができますが、いずれかのアサーションが失敗すると、テスト ケースは実行を停止することに注意してください。
pythonCopy code
def test_multiple_assertions(): assert 1 + 1 == 2 assert 2 + 2 == 4
アサーション例外
コンテキスト マネージャーを使用して、予期される例外がスローされたかどうかをアサートできます。pytest.raises
pythonCopy code
def test_exception(): with pytest.raises(ValueError): int("invalid")
失敗メッセージをカスタマイズする
ステートメントのカスタム失敗メッセージを指定できます。assert
pythonCopy code
def test_custom_message(): assert 1 + 1 == 3, "Custom failure message: 1 + 1 should equal 2, not 3"
複雑なオブジェクトの比較
リストやディクショナリなどの複雑なオブジェクト比較の場合、pytest は詳細な比較出力を提供します。
pythonCopy code
def test_list(): assert [1, 2, 3] == [1, 2, 4]
これにより、リスト内のどの要素が一致しないかを示す詳細な比較出力が生成されます。
浮動小数点数の比較
浮動小数点精度の問題があるため、比較に使用することをお勧めします。pytest.approx
pythonCopy code
def test_float(): assert 0.1 + 0.2 == pytest.approx(0.3)
このサブセクションでは、アサーションの定義、使用法、pytestでより複雑なアサーションを作成する方法など、アサーションのさまざまな側面について詳しく説明します。 これは、初心者がアサーションを使用してコードの正確性と堅牢性を検証する方法をよりよく理解するのに役立ちます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
フィクスチャがフィクスチャChatGPTを使用しているものを詳しく説明してください
もちろん、以下は「フィクスチャとは」のセクションの詳細な説明です。 これは、チュートリアルの「フィクスチャの使用」セクションの紹介として、または基礎となる概念のサブセクションとして役立ちます。
フィクスチャとは何ですか?
定義
ソフトウェアテストでは、フィクスチャは安定したテスト環境を作成するために使用されるメカニズムです。 データベース接続の初期化、ファイルの構成、オブジェクト インスタンスの作成、またはその他のセットアップまたはクリーンアップ タスクの実行に使用できます。 pytestでは、フィクスチャは複数のテストケースまたはテストモジュール間で共有できる再利用可能なテストリソースです。
なぜ備品が必要なのですか
- コードの再利用: フィクスチャを使用することで、複数のテスト ケースで同じセットアップ コードとクリーンアップ コードを繰り返すことを回避できます。
- デカップリング:フィクスチャを使用すると、テストロジックをテスト環境のセットアップとクリーンアップから分離できるため、テストの保守が容易になります。
- 柔軟性:フィクスチャを使用するテストケースに影響を与えることなく、フィクスチャの実装を簡単に変更できます。
- パラメータ化:フィクスチャをパラメータ化できるため、同じテストロジックを異なる条件下で実行できます。
仕組み
pytestでは、フィクスチャはデコレータを使用して定義された通常のPython関数です。 これらの関数は、テストで使用する必要があるリソースを返します。@pytest.fixture
pythonCopy code
import pytest @pytest.fixture def example_data(): return {"key": "value"}
フィクスチャが定義されたら、それを引数としてテスト関数に渡すことができ、pytestは自動的にそのライフサイクルを処理します。
pythonCopy code
def test_example(example_data): assert example_data["key"] == "value"
ライフサイクルと範囲
クランプにはさまざまなライフサイクルとスコープがあり、関数レベル (テスト関数ごとに 1 つのインスタンス)、モジュール レベル (モジュールごとに 1 つのインスタンス)、またはセッション レベル (テスト セッション全体で 1 つのインスタンス) にすることができます。
構成と依存関係
フィクスチャは他のフィクスチャに依存することができるため、コードのモジュール化と再利用性を維持しながら、複雑なテスト環境を作成できます。
このサブセクションでは、フィクスチャとは何か、なぜ必要なのか、pytestでどのように機能するのかについて、包括的かつ詳細に説明します。 これにより、初心者がPyTestのフィクスチャを使用して学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
フィクスチャを使用してフィクスチャChatGPTを作成して使用する方法を詳しく説明してください
もちろん、以下は「フィクスチャの作成方法と使用方法」のセクションの詳細な説明です。 これは、チュートリアルの「フィクスチャの使用」セクションのコアサブセクションとして使用できます。
フィクスチャの作成方法と使用方法
フィクスチャの作成
- 関数を定義する: テストで使用するリソースまたは設定を返す通常の Python 関数を作成します。
- デコレータの追加: デコレータを使用して、この関数をフィクスチャとしてマークします。
@pytest.fixture
- リソースを返す: フィクスチャ関数内で、ステートメントを使用して必要なリソースを返します。
return
pythonCopy code
# 创建一个简单的夹具 import pytest @pytest.fixture def example_data(): return {"key": "value"}
フィクスチャを使用する
- パラメータとして: フィクスチャ関数の名前をパラメータとしてテスト関数に追加します。
- リソースへのアクセス:テスト関数内では、このフィクスチャを通常のPython変数のように使用できます。
pythonCopy code
# 使用夹具 def test_example(example_data): assert example_data["key"] == "value"
フィクスチャの範囲
パラメータを設定することで、フィクスチャのスコープを定義できます。scope
- 関数レベル(デフォルト): 各テスト関数のフィクスチャを再実行します。
- モジュール レベル: モジュール全体で 1 回だけ実行されます。
- セッション レベル: テスト セッション全体で 1 回だけ実行されます。
pythonCopy code
# 设置夹具范围为模块级别 @pytest.fixture(scope="module") def example_data(): return {"key": "value"}
フィクスチャのパラメータ化
パラメータを使用してパラメトリックフィクスチャを作成します。params
pythonCopy code
# 参数化夹具 @pytest.fixture(params=[1, 2, 3]) def example_data(request): return request.param
フィクスチャの依存関係
1つのフィクスチャが他のフィクスチャに依存する可能性があるため、より複雑なテスト環境を構築できます。
pythonCopy code
# 夹具依赖 @pytest.fixture def more_data(example_data): example_data["more_key"] = "more_value" return example_data
清理资源
使用 语句在夹具中进行资源清理。yield
pythonCopy code
# 使用 yield 进行清理 @pytest.fixture def database_connection(): conn = create_connection() yield conn conn.close()
这个子节详细地解释了如何创建和使用 pytest 中的夹具,包括如何定义、调用、参数化和管理夹具的生命周期。这将为初学者提供一个明确和容易遵循的路径,以开始他们在 pytest 中使用夹具的学习之旅。希望这能帮助你在创建你的 pytest 教程时提供有价值的信息。
请详细解释使用Fixtures的Fixtures的作用域ChatGPT
当然,以下是对”Fixtures 的作用域(Scope)”这一部分的详细解释。这可以作为你教程中”使用 Fixtures”部分的一个重要子节。
Fixtures 的作用域(Scope)
定義
pytestでは、フィクスチャのスコープはフィクスチャインスタンスのライフサイクル、つまり作成および破棄されるタイミングを定義します。 スコープは、フィクスチャの再利用とテスト実行の速度に影響します。
種類
PyTest では、次の種類のスコープがサポートされています。
- 機能レベル
: 既定のスコープ。 フィクスチャに依存するテスト関数ごとに、新しいフィクスチャインスタンスが作成されます。
- モジュールレベル
:Pythonモジュール全体(ファイル)内で、フィクスチャは一度だけ作成されます。
.py
- クラスレベル
: フィクスチャはテストクラス全体で一度だけ作成されます。
- セッションレベル
:フィクスチャはテストセッション全体(つまり、すべてのテスト)中に一度だけ作成されます。
スコープの設定方法
パラメーターを使用して、デコレーターのスコープを設定します。scope
@pytest.fixture
pythonCopy code
# 设置模块级别的作用域 @pytest.fixture(scope="module") def example_data(): return {"key": "value"}
スコープが重要な理由
- パフォーマンス: セッション レベルなどのより高いレベルのスコープを使用すると、設定とクリーンアップの数が減り、テストが高速化される可能性があります。
- 分離: 関数レベルなどの下位レベルのスコープでは、テストの分離が向上しますが、パフォーマンスが低下する可能性があります。
- リソース管理: 適切なスコープを設定すると、データベース接続、ファイル、またはその他のリソースをより効率的に管理できます。
筆記
- 依存関係: 高スコープのフィクスチャが低スコープのフィクスチャに依存している場合、低スコープのフィクスチャは、高スコープのフィクスチャを呼び出すたびに再実行されます。
- クリーンアップ: モジュールレベルおよびセッションレベルのフィクスチャの場合、フィクスチャ関数で適切なリソースクリーンアップを確保することが重要です。
このサブセクションでは、pytestのフィクスチャスコープのさまざまな側面について、それらが何であるか、どのように設定されているか、なぜそれらが重要なのかなど、詳細に説明します。 これは、初心者がスコープを効果的に使用してフィクスチャのライフサイクルを管理する方法をよりよく理解するのに役立ちます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTのパラメトリックテストについて詳しく説明してください
もちろん、以下は「パラメータ化テストとは」のセクションの詳細な説明です。 これは、チュートリアルの「パラメトリック テスト」セクションの紹介として、または基礎となる概念のサブセクションとして役立ちます。
パラメーター化テストとは
定義
パラメトリックテストは、異なる入力データで同じテストケースを体系的に実行するために使用されるソフトウェアテスト手法です。 この目的は、さまざまな条件下でテスト対象のコードの動作を確認することです。 pytestでは、パラメトリックテストを使用して、複数のバリアントを含む単一のテストケースを同時に実行できます。
パラメトリック検定が必要な理由
- コードの再利用: パラメーター化を使用すると、ほぼ同一の複数のテスト ケースを記述する必要がなくなるため、コードの重複を減らすことができます。
- 包括性: パラメーター化を使用すると、複数のデータ セットを使用して機能を徹底的にテストし、さまざまな条件下で適切に機能することを確認できます。
- 簡単なメンテナンス: テスト ロジックを変更する必要がある場合は、複数の個別のテスト ケースを更新する代わりに、1 か所で変更を加えるだけで済みます。
- カバレッジの向上: さまざまなテスト データを使用すると、コードをより包括的にカバーし、テストの品質を向上させることができます。
それを達成する方法
pytest では、デコレータを使用してパラメトリック テストを実装できます。@pytest.mark.parametrize
pythonCopy code
import pytest @pytest.mark.parametrize("input,expected", [(5, 25), (2, 4), (3, 9)]) def test_squares(input, expected): assert input ** 2 == expected
ここで、 と はテスト関数のパラメータ、 はパラメータの値である。 このテスト ケースは、異なるパラメーター セットを使用して 3 回実行されます。input
expected
test_squares
[(5, 25), (2, 4), (3, 9)]
パラメトリックフィクスチャ
テスト関数に加えて、フィクスチャをパラメータ化して、異なるテスト環境で同じテストロジックを実行できます。
pythonCopy code
@pytest.fixture(params=[1, 2, 3]) def example_data(request): return request.param
このサブセクションでは、パラメータ化されたテストとは何か、なぜそれが必要なのか、pytestで実装する方法について包括的かつ詳細に説明します。 これにより、初心者がPytestのパラメトリックテストで学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
パラメトリックテストChatGPTの実行方法を詳しく説明してください
もちろん、以下は「パラメトリックテストの方法」セクションの詳細な説明です。 これは、チュートリアルの「パラメトリック テスト」セクションのコア サブセクションとして使用できます。
パラメトリック検定の実行方法
デコレータを使用する@pytest.mark.parametrize
- pytest のインポート: まず、pytest モジュールをインポートしたことを確認します。 pythonCopy code
import pytest
- テスト関数を定義する: テスト関数を作成し、そのパラメーターを定義します。 これらのパラメーターは、テスト データを受信するために使用されます。 pythonCopy code
def test_multiply(a, b, expected): ...
- デコレータを追加する: デコレータを使用して、テスト関数のパラメータ名を表す文字列と値のリストの 2 つの主要な引数を指定します。 pythonCopy code ここでは、各タプルが一連のテスト データを表します。
@pytest.mark.parametrize
@pytest.mark.parametrize("a, b, expected", [(1, 2, 2), (2, 3, 6), (3, 5, 15)]) def test_multiply(a, b, expected): assert a * b == expected
(a, b, expected)
複数のテスト ケースをパラメーター化する
モジュールまたはクラス内の複数のテスト ケースをパラメーター化することもできます。
pythonCopy code
@pytest.mark.parametrize("a, b, expected", [(1, 2, 2), (2, 3, 6)]) class TestMultiply: def test_multiply_positive(self, a, b, expected): assert a * b == expected def test_multiply_properties(self, a, b, expected): assert a * b == b * a
パラメトリックフィクスチャ
- フィクスチャを定義: デコレータを使用するフィクスチャを作成します。 pythonCopy code
@pytest.fixture
@pytest.fixture def example_data(): return 42
- パラメトリックフィクスチャ: フィクスチャ定義でパラメータを使用します。 pythonCopy code
params
@pytest.fixture(params=[1, 2, 3]) def example_data(request): return request.param
- パラメトリックフィクスチャを使用する: テスト関数では、通常のフィクスチャであるかのようにパラメトリックフィクスチャを使用します。 pythonCopy code
def test_example(example_data): assert example_data in [1, 2, 3]
パラメータの結合
複数のデコレータを使用して、複数のパラメータを組み合わせることができます。@pytest.mark.parametrize
pythonCopy code
@pytest.mark.parametrize("a", [1, 2]) @pytest.mark.parametrize("b", [3, 4]) def test_combination(a, b): assert a < b
これにより、次の 4 つのテスト ケースが生成されます。(1, 3), (1, 4), (2, 3), (2, 4)
このサブセクションでは、デコレータの使用、複数のテストケースのパラメータ化、複数のパラメータとフィクスチャのパラメータ化と組み合わせなど、パラメトリックテストの実行方法について詳しく説明します。 これにより、初心者がPytestのパラメトリックテストで学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。@pytest.mark.parametrize
パラメトリックテストのパラメトリックフィクスチャチャットGPTについて詳しく説明してください
もちろん、以下は「パラメトリックフィクスチャ」セクションの詳細な説明です。 これは、チュートリアルの「パラメトリック テスト」セクションの専用のサブセクションにすることができます。
パラメトリックフィクスチャ
定義
pytestでは、テスト関数をパラメータ化することに加えて、フィクスチャをパラメータ化することもできます。 パラメトリックフィクスチャを使用すると、異なるテスト環境または条件で同じテストロジックを実行できます。
パラメトリックフィクスチャの実装方法
- フィクスチャを定義: デコレータを使用してフィクスチャを定義します。 pythonCopy code
@pytest.fixture
@pytest.fixture def example_data(): return {"key": "value"}
- パラメータの追加: フィクスチャ定義のパラメータを使用して、テストデータのセットを追加します。 pythonCopy コードでは、ここで 3 つの異なるテスト データ セットを定義します。
params
@pytest.fixture(params=[1, 2, 3]) def example_data(request): return request.param
params=[1, 2, 3]
- アクセス パラメーター: 現在のパラメーター値にアクセスするために使用します。
request.param
パラメトリックフィクスチャの使用方法
- テスト関数で使用: パラメータ化されたフィクスチャの名前をテスト関数のパラメータとして使用します。 pythonCopy code
def test_example(example_data): assert example_data in [1, 2, 3]
- 組み合わせ: テスト関数で複数のパラメトリックフィクスチャを使用できます。 pythonCopy code
@pytest.fixture(params=[4, 5, 6]) def more_data(request): return request.param def test_combination(example_data, more_data): assert example_data + more_data in [5, 6, 7, 6, 7, 8, 7, 8, 9]
筆記
- スコープ: パラメータ化されたフィクスチャのスコープは、テスト関数またはそれらを使用する他のフィクスチャのスコープと互換性がある必要があります。
- 依存関係: パラメトリックフィクスチャは他のフィクスチャに依存することができますが、スコープとパラメータの組み合わせに注意する必要があります。
- リソースのクリーンアップ: フィクスチャでリソースの割り当てとクリーンアップが必要な場合は、これらの操作がパラメーター化と互換性があることを確認してください。
このサブセクションでは、定義、パラメータの追加、パラメータへのアクセス、それらの組み合わせなど、PyTestでパラメトリックフィクスチャを実装して使用する方法について詳しく説明します。 これにより、初心者がPytestのパラメトリックフィクスチャを使用して学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
pytest.mark ChatGPTを使用してマークされたタグでマークアップを詳細に説明してください
もちろん、以下は「使用法によるマーキング」セクションの詳細な説明です。 これは、チュートリアルの「タグとラベル」セクションのコア サブセクションにすることができます。pytest.mark
マークに使用pytest.mark
定義
pytestでは、テストケースにメタデータタグ(またはタグ)を追加するためのメカニズムです。 これらのタグを使用して、特定のテスト アクションをフィルター処理、並べ替え、または実行できます。pytest.mark
タグを追加する方法
- 単一マークアップ: デコレーターを使用して、テスト関数にタグを追加します。 pythonCopy code
@pytest.mark.MARK_NAME
@pytest.mark.slow def test_slow_function(): pass
- 複数のタグ: テスト関数に複数のタグを追加できます。 pythonCopy code
@pytest.mark.slow @pytest.mark.regression def test_slow_and_regression(): pass
タグの使用方法
- 特定のタグでテストを実行する: 特定のタグでテストを実行するオプションを使用します。 bashCopy コード これは、タグでマークされたテストのみを実行します。
-m
pytest -m slow
@pytest.mark.slow
- 特定のタグを持つテストを除外する: 特定のタグを持つテストを除外するために使用します。 バッシュコピーコード
-m "not MARK_NAME"
pytest -m "not slow"
- タグを組み合わせる: 、、) などの論理演算子を使用して、複数のタグを結合します。 バッシュコピーコード
and
or
not
pytest -m "slow and regression"
カスタムタグ
- カスタムタグの登録: pytest の未登録タグの警告を回避するために、またはファイルにカスタムタグを登録します。 コードをコピーする
pytest.ini
pyproject.toml
# pytest.ini [pytest] markers = slow: marks tests as slow (deselect with '-m "not slow"')
- カスタムタグを使用する: サインアップすると、組み込みタグと同じようにカスタムタグを使用できます。 pythonCopy code
@pytest.mark.slow def test_custom_marker(): pass
パラメーター化されたマーカー
タグにパラメータを追加して、より複雑なテストロジックを作成することもできます。
pythonCopy code
@pytest.mark.parametrize("input,expected", [(3, 9), (4, 16)], ids=["3^2", "4^2"]) def test_squares(input, expected): assert input ** 2 == expected
このサブセクションでは、マークアップの追加、使用、カスタマイズ、パラメータ化など、マークアップに pytest を使用する方法について詳しく説明します。 これにより、初心者がpytestのマークアップを使用して学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。pytest.mark
タグChatGPT付きのカスタムタグについて詳しく説明してください
もちろん、以下は「カスタムマークアップ」セクションの詳細な説明です。 これは、チュートリアルの「タグとラベル」セクションの専用のサブセクションにすることができます。
カスタムタグ
定義
カスタムタグを使用すると、テストのニーズに固有のタグを作成できます。 これらのタグは、組み込みタグと同様に、特定のテストアクションの並べ替え、フィルター処理、または実行に使用できます。pytest.mark
カスタムタグの登録方法
- 構成ファイルを作成する: OR ファイルがまだない場合は、作成します。
pytest.ini
pyproject.toml
- タグの登録: 構成ファイルで、フィールドを使用してカスタム タグを登録します。
markers
- ファイル内:
pytest.ini
[pytest] markers = my_marker: description of my custom marker
- ファイル内:
pyproject.toml
[tool.pytest.ini_options] markers = [ "my_marker: description of my custom marker", ]
- ファイル内:
カスタムタグの使用方法
- テスト関数に追加: デコレーターを使用して、カスタムマークアップをテスト関数に追加します。 pythonCopy code
@pytest.mark.MY_MARKER_NAME
@pytest.mark.my_marker def test_with_custom_marker(): pass
- カスタムタグを使用してテストを実行する: カスタムタグを使用してテストを実行するオプションを使用します。 バッシュコピーコード
-m
pytest -m my_marker
カスタムタグを組み合わせる方法
、、) などの論理演算子を使用して、カスタム タグと組み込みタグを組み合わせることができます。and
or
not
バッシュコピーコード
pytest -m "my_marker and not slow"
筆記
- 名前の競合を避ける: カスタムタグ名が組み込みタグや他のライブラリのタグ名と競合しないようにします。
- 説明: 他の開発者がその目的を理解できるように、カスタムタグの説明を入力します。
- ドキュメント: すべてのカスタムタグとその目的をプロジェクトのテストドキュメントにリストして、チームメンバーがそれらの使用方法を理解できるようにします。
このサブセクションでは、登録、使用、組み合わせなど、Pytestでカスタムタグを作成して使用する方法について詳しく説明します。 これにより、初心者がPytestのカスタムタグを使用して学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
特定のタグテストChatGPTを実行しているタグによるタグ付けについて詳しく説明してください
もちろん、以下は「特定のタグでテストを実行する」セクションの詳細な説明です。 これは、チュートリアルの「タグとラベル」セクションの専用のサブセクションにすることができます。
特定のタグのテストを実行する
定義
pytest では、コマンドラインオプションを使用して、特定のタグ (またはラベル) でテストを実行できます。 これは、現在関心のある特定の機能または問題に関連するテストのみを実行する効率的な方法です。-m
特定のタグでテストを実行する方法
- 基本的な使用方法: オプションの後にタグ名を使用します。 bashCopy コード これは、タグでマークされたテストのみを実行します。
-m
pytest -m slow
@pytest.mark.slow
- 特定のタグを除外する: キーワードを使用して、特定のタグを持つテストを除外します。 bashCopy コード これにより、マークされていないすべてのテストが実行されます。
not
pytest -m "not slow"
@pytest.mark.slow
- 複数のトークンを結合する: 、) などの論理演算子を使用して、複数のタグを結合します。 bashCopy コード: これにより、 と の両方でマークされたテストが実行されます。
and
or
pytest -m "slow and regression"
@pytest.mark.slow
@pytest.mark.regression
- OR 演算子を使用する: いずれかのフラグを使用してテストを実行する場合は、演算子を使用できます。 バッシュコピーコード
or
pytest -m "slow or regression"
高度な使用法
- 括弧を使用する: タグの複雑な組み合わせがある場合は、括弧を使用して優先順位を明確にすることができます。 バッシュコピーコード
pytest -m "(slow or regression) and not smoke"
- カスタムタグ: カスタムタグを使用してテストを実行する場合も同様です。 バッシュコピーコード
pytest -m my_custom_marker
筆記
- タグを登録する必要があります: カスタムタグを含め、実行するすべてのタグが OR ファイルに登録されていることを確認します。
pytest.ini
pyproject.toml
- 大文字と小文字が区別されます: タグ名では大文字と小文字が区別され、コマンドラインで正しい大文字と小文字が使用されます。
このサブセクションでは、pytestで特定のタグを使用してテストを実行する方法について、基本的な使用法、特定のタグの除外、複数のタグの結合、高度な使用法などについて詳しく説明します。 これにより、初心者がpytestでマークアップを使用して特定のテストを実行する学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTで例外を処理するためにpytest.raisを使用して例外を処理する方法を詳細に説明してください
もちろん、以下は「使用に伴う例外の処理」のセクションの詳細な説明です。 これは、チュートリアルの「例外の処理」セクションのコア サブセクションとして機能します。pytest.raises
例外を処理するために使用しますpytest.raises
定義
pytest.raises
は、例外をキャッチしてテストするための pytest 組み込みコンテキストマネージャーです。 これにより、テスト ケースが特定の種類の例外を期待どおりにスローすることを確認できます。
基本的な使い方
- 例外をキャッチする: ステートメントを使用して、特定の種類の例外をキャッチします。 この例のpythonCopyコードは、スローする必要があります。 その場合、テストは合格します。
with
pytest.raises
import pytest def test_divide_by_zero(): with pytest.raises(ZeroDivisionError): 1 / 0
1 / 0
ZeroDivisionError
- 例外メッセージを確認する: 例外のエラー メッセージが期待どおりかどうかを確認することもできます。 pythonCopy code ここでは、パラメーターは正規表現を使用して、エラー メッセージに “123” が含まれているかどうかを確認します。
def test_value_error_message(): with pytest.raises(ValueError, match=r".* 123 .*"): raise ValueError("Exception 123 occurred")
match
高度な使用法
as
を使用して例外情報を取得: キーワードを使用して、実際にスローされた例外オブジェクトを取得できます。 pythonCopy コード オブジェクトには、スローされた例外に関する情報が含まれています。as
def test_get_exception_info(): with pytest.raises(ValueError) as excinfo: raise ValueError("Exception occurred") assert "Exception occurred" in str(excinfo.value)
excinfo
- カスタム例外: カスタム例外にも適用されます。 pythonCopy code
pytest.raises
class CustomError(Exception): pass def test_custom_exception(): with pytest.raises(CustomError): raise CustomError("This is a custom exception")
筆記
- 例外をキャッチしない: コードが予期した例外をスローしない場合、テストは失敗します。
pytest.raises
- 複数の例外: キャッチできる例外は 1 つだけです。 複数の例外をテストする必要がある場合は、複数のブロックを使用する必要があります。
pytest.raises
pytest.raises
try/except
を避ける: 例外をテストするときは、テスト ロジックが複雑になるため、ブロックの使用は避けてください。try/except
このサブセクションでは、pytest で例外を処理する方法について、基本的な使用法、高度な使用法、考慮事項などについて詳しく説明します。 これにより、初心者がPytestで例外を処理する学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。pytest.raises
pytest.warnsを使用して例外を処理して警告を処理する方法を詳細に説明してくださいChatGPT
もちろん、以下は「警告処理の使用」セクションの詳細な説明です。 これは、チュートリアルの「例外の処理」セクションの専用サブセクションとして使用できます。pytest.warns
警告の処理に使用しますpytest.warns
定義
pytest.warns
は、警告をキャプチャしてテストするための pytest 組み込みコンテキストマネージャーです。 これにより、テスト ケースが特定の種類の警告を期待どおりに出力することを確認できます。
基本的な使い方
- 警告のキャプチャ: ステートメントとステートメントを使用して、特定の種類の警告をキャプチャします。 この例では、pythonCopy コードを生成する必要があります。 その場合、テストは合格します。
with
pytest.warns
import pytest import warnings def test_deprecation_warning(): with pytest.warns(DeprecationWarning): warnings.warn("deprecated", DeprecationWarning)
warnings.warn("deprecated", DeprecationWarning)
DeprecationWarning
- 警告メッセージを確認する: 警告メッセージが期待どおりかどうかを確認することもできます。 pythonCopy コード ここでは、パラメーターは正規表現を使用して、警告メッセージに “123” が含まれているかどうかを確認します。
def test_specific_warning_message(): with pytest.warns(UserWarning, match=r".* 123 .*"): warnings.warn("Warning 123 occurred")
match
高度な使用法
as
を使用して警告情報を取得: キーワードを使用して、実際の警告オブジェクトを取得できます。 pythonCopy コード オブジェクトには、発行された警告に関する情報が含まれています。as
def test_get_warning_info(): with pytest.warns(UserWarning) as record: warnings.warn("User warning") assert "User warning" in str(record[0].message)
record
- 複数の警告: コードで複数の警告が発行される可能性がある場合は、それらをキャッチすることもできます。 ここでのpythonCopyコードは、特定の種類の警告を気にしないことを意味します。
pytest.warns
def test_multiple_warnings(): with pytest.warns(None) as record: warnings.warn("User warning") warnings.warn("Another warning") assert len(record) == 2
None
筆記
- 警告なし: コードが予期した警告を発行しない場合、テストは失敗します。
pytest.warns
- 警告の種類: 正しい警告の種類を指定していることを確認してください。 よくわからない場合は、 を使用できます。
None
- 警告を無視しない: 警告をテストするときは、テストの精度に影響を与える可能性があるため、使用しないようにしてください。
warnings.filterwarnings
このサブセクションでは、pytest で警告を処理する方法について詳しく説明し、基本、高度な使用法、考慮事項などについて説明します。 これにより、初心者がPyTestで警告に対処する学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。pytest.warns
高度なトピックChatGPTの並列テストについて詳しく説明してください
もちろん、以下は「並列テスト」セクションの詳細な説明です。 これは、チュートリアルの「高度なトピック」セクションのコアサブセクションにすることができます。
並列テスト
定義
並列テストは、複数のテスト ケースを同時に実行して、全体的なテスト実行時間を短縮できるテスト最適化手法です。 pytest では、などのサードパーティプラグインを使用して、並列テストを実装できます。pytest-xdist
pytest-xdist をインストールする
まず、プラグインをインストールする必要があります。pytest-xdist
バッシュコピーコード
pip install pytest-xdist
基本的な使い方
- 並列テストの実行: オプションを使用し、その後に使用する CPU コアの数を指定します。 bashCopy codeこれにより、4つのCPUコアと並行してテストが実行されます。
-n
pytest -n 4
- CPU コアの自動検出: このパラメーターを使用して、使用可能なすべての CPU コアを自動的に検出して使用します。 バッシュコピーコード
auto
pytest -n auto
高度な使用法
- 分散テスト: また、複数のコンピューターに分散されたテストを実行することもできます。 バッシュコピーコード
pytest-xdist
pytest --dist=loadscope
- 特定のタグで並列テストを実行する: 特定のタグで並列テストを実行するオプションを組み合わせることができます。 バッシュコピーコード
-m
pytest -n 4 -m "slow"
- リソースの分離: 並列テストでは、各テスト ケースが独立しており、グローバルな状態やリソースを共有していないことを確認します。
筆記
- スレッドセーフ: テストケースと使用される共有リソースがスレッドセーフであることを確認します。
- データベースの分離: テスト ケースにデータベース操作が含まれる場合は、各テスト ケースに独自の独立したデータベース トランザクションがあることを確認します。
- ログと出力: 並列テストでは、ログとコンソール出力が乱雑になる可能性があります。 適切なログ ポリシーがあることを確認します。
- 依存関係: 並列テストは実行順序を乱すため、依存関係を持つテスト ケースの作成は避けてください。
このサブセクションでは、pytest で並列テストを実行する方法について、基本的な使用法、高度な使用法、考慮事項などを含めて詳しく説明します。 これにより、テストの速度と効率を最適化したい上級ユーザーに、明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
コマンドラインオプションChatGPTを使用して高度なトピックを詳細に説明してください
もちろん、以下は「コマンドラインオプションの使用」セクションの詳細な説明です。 これは、チュートリアルの「高度なトピック」セクションの専用のサブセクションにすることができます。
コマンド ライン オプションを使用する
定義
pytest には、テスト実行の動作をカスタマイズするためのさまざまなコマンドラインオプションが用意されています。 これらのオプションを使用すると、テストの検出、実行、レポート作成、およびその他の多くの側面を制御できます。
基本的な使い方
- テスト ファイルとディレクトリを指定する: コマンド ラインで直接実行するテスト ファイルまたはディレクトリを指定できます。 バッシュコピーコード
pytest tests/test_example.py
- 特定のテストを実行する: シンボルを使用して、特定のテスト関数またはテスト クラスを実行します。 バッシュコピーコード
::
pytest tests/test_example.py::test_function
- タグのフィルター処理: 特定のタグを使用してテストを実行するオプションを使用します。 バッシュコピーコード
-m
pytest -m slow
- キーワード式: 名前が特定のキーワードと一致するテストを実行するには、オプションを使用します。 バッシュコピーコード
-k
pytest -k "TestExample and not slow"
高度な使用法
- 出力の詳細度の変更: およびオプションを使用して、出力の詳細度を制御します。 バッシュコピーコード
-v
-q
pytest -v # Verbose pytest -q # Quiet
- テストレポートの生成: JUnit形式のテストレポートを生成するオプションを使用します。 バッシュコピーコード
--junitxml
pytest --junitxml=report.xml
- 失敗した再試行: このオプションを使用して、失敗した再試行の回数を設定します。 バッシュコピーコード
--maxfail
pytest --maxfail=3
- 並列実行: 既に をインストールしている場合は、テストを並列実行するオプションを使用します。 バッシュコピーコード
pytest-xdist
-n
pytest -n 4
- カスタムプラグインオプション:インストールされたpytestプラグインは、追加のコマンドラインオプションを提供する場合があります。 バッシュコピーコード
pytest --some-plugin-option=value
筆記
- 競合を避ける: カスタムコマンドラインオプションが pytest や他のプラグインのオプションと競合しないことを確認してください。
- 構成ファイル: 多くのコマンド ライン オプションは、OR ファイルで設定することもできます。
pytest.ini
pyproject.toml
- プラグインの互換性: プラグイン関連のコマンドラインオプションを使用する場合は、pytest とプラグインのバージョンに互換性があることを確認してください。
このサブセクションでは、pytestでコマンドラインオプションを使用する方法について、基本、詳細、注意事項などを含めて詳しく説明します。 これにより、上級ユーザーがpytestのコマンドラインオプションを使用して学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
高度なトピックの CI/CD パイプライン ChatGPT への統合について詳しく説明してください
もちろん、ここでは「CI/CD パイプラインへの統合」セクションの詳細な説明を示します。 これは、チュートリアルの「高度なトピック」セクションの重要なサブセクションになります。
CI/CD パイプラインへの統合
定義
CI/CD (継続的インテグレーション/継続的デプロイ) は、最新のソフトウェア開発の重要なコンポーネントです。 pytest を CI/CD パイプラインに統合することで、テストの実行を自動化し、コードの変更によって既存の機能が損なわれないようにすることができます。
基本的な使い方
- テスト ステップを追加する: CI/CD 構成ファイル (、、、など) に、pytest を実行するステップを追加します。 yamlコードをコピーする
.gitlab-ci.yml
Jenkinsfile
github-actions.yml
# 示例:GitHub Actions jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: pytest
- 依存関係のキャッシュ: テストを高速化するために、依存関係をキャッシュできます。 yamlコードをコピーする
# 示例:缓存 Python 依赖 - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
高度な使用法
- 並列テスト: テスト ライブラリが大きい場合は、並列テストを使用してテスト時間を短縮することを検討してください。 yamlコードをコピーする
# 示例:使用 pytest-xdist 进行并行测试 - name: Run tests in parallel run: pytest -n auto
- 条件付きテスト: トリガーされたイベントまたはブランチに基づいて特定のテストを実行します。 yamlコードをコピーする
# 示例:只在 master 分支上运行 "slow" 标记的测试 - name: Run slow tests on master if: github.ref == 'refs/heads/master' run: pytest -m slow
- テスト レポートを生成して発行する: テスト レポートを自動的に生成し、CI/CD プラットフォームに発行します。 yamlコードをコピーする
# 示例:生成 JUnit 格式的测试报告 - name: Generate test report run: pytest --junitxml=report.xml
筆記
- 環境変数: 必要なすべての環境変数が CI/CD パイプラインで正しく設定されていることを確認します。
- 機密情報: データベースの認証情報や API キーなどの機密情報を CI/CD 構成ファイルにハードコーディングしないでください。
- プラグインの互換性: CI/CD 環境の pytest とプラグインのバージョンがオンプレミス環境と一致していることを確認します。
- リソース制限: 注 CI/CD サービスには、最大実行時間や並列タスクの数などのリソース制限がある場合があります。
このサブセクションでは、pytest で CI/CD パイプラインに統合する方法について、基本的な使用法、高度な使用法、考慮事項などについて詳しく説明します。 これにより、上級ユーザーが pytest と CI/CD 統合の学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTを整理するためのコードのベストプラクティスを詳しく説明してください
もちろん、以下は「コード編成」セクションの詳細な説明です。 これは、チュートリアルの「ベスト プラクティス」セクションの重要なサブセクションとして機能します。
コード編成
定義
コード編成は、テスト・コード、テスト・データ、および構成ファイルを構造化して、保守、拡張、およびコラボレーションを容易にするテスト・エンジニアリングの重要な側面です。
基本的な使い方
- ディレクトリ構造: 通常、テスト コードは という名前の別のディレクトリに格納する必要があります。 コードをコピーする
tests
my_project/ ├── src/ ├── tests/ │ ├── unit/ │ ├── integration/ │ └── e2e/ └── pytest.ini
- 命名規則: テスト ファイルはプレフィックスで始まり、テスト関数とメソッドは で始まる必要があります。 pythonCopy code
test_
test_
# 文件名: test_example.py def test_addition(): assert 1 + 1 == 2
- フィクスチャを使用する:一般的に使用されるセットアップコードをフィクスチャに入れて、簡単に再利用できるようにします。 pythonCopy code
@pytest.fixture def sample_data(): return {"key": "value"}
高度な使用法
- モジュール レベルのフィクスチャ: 複数のテスト関数またはクラス間で共有されるリソースには、モジュール レベルまたはセッション レベルのフィクスチャを使用します。 pythonCopy code
@pytest.fixture(scope="module") def db_connection(): # Setup code yield connection # Teardown code
- パラメトリックテスト:pytestのパラメータ化機能を使用して、重複コードを減らします。 pythonCopy code
@pytest.mark.parametrize("input,expected", [(1, 2), (2, 3), (3, 4)]) def test_increment(input, expected): assert input + 1 == expected
- タグとセレクター: タグを使用してテストを分類し、コマンドライン セレクターを使用して特定のテスト セットを実行します。 pythonCopy コードの実行: bashCopy code
@pytest.mark.slow def test_slow_operation(): pass
pytest -m slow
筆記
- グローバル状態を避ける: テストの独立性に影響を与える可能性があるため、テストでグローバル状態またはシングルトンを使用しないでください。
- リソースをクリーンアップする: テストの完了後、すべてのリソース (データベース接続、ファイルなど) が適切にクリーンアップされていることを確認します。
- ドキュメントとコメント:複雑なテストやフィクスチャに適切な量のドキュメントとコメントを追加します。
- バージョン管理: テスト コードとマスター コードをバージョン管理システムにまとめて、変更を追跡し、チームのコラボレーションを促進します。
このセクションでは、pytest でのコード編成のベストプラクティスについて、基本、高度な使用法、考慮事項などについて詳しく説明します。 これにより、あらゆるレベルの開発者やテストエンジニアが、pytestで効率的なコード編成の学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTでのテストカバレッジのベストプラクティスを詳しく説明してください
もちろん、以下は「テストカバレッジ」セクションの詳細な説明です。 これは、チュートリアルの「ベスト プラクティス」セクションの重要なサブセクションとして機能します。
テストカバレッジ
定義
テスト カバレッジは、コードの合計量に対するテスト中に実行されたコードの量の比率を表すメトリックです。 テストの包括性と品質を評価するためによく使用されます。
基本的な使い方
- カバレッジ ツールのインストール: プラグインを使用してカバレッジ レポートを統合します。 バッシュコピーコード
pytest-cov
pip install pytest-cov
- カバレッジ テストの実行: pytest を実行するときに、オプションを追加します。 bashCopy コード これにより、各ファイルのカバレッジを示すカバレッジ レポートが生成されます。
--cov
pytest --cov=my_project
高度な使用法
- HTML レポートの生成: このオプションを使用して、HTML 形式のカバレッジ レポートを生成します。 bashCopy コード これにより、ディレクトリの下に HTML レポートが生成されます。
--cov-report
pytest --cov=my_project --cov-report html
htmlcov/
- カバレッジしきい値の設定: テストが失敗するカバレッジしきい値を設定できます。 bashCopy codeこれにより、カバレッジが90%を下回るとテストが失敗します。
pytest --cov=my_project --cov-fail-under=90
- コードを除外する: ファイルを使用して、特定のコード ブロックまたはファイルを除外します。 コードをコピーする
.coveragerc
# .coveragerc [report] omit = my_project/excluded_file.py
筆記
- 唯一の指標ではない: カバレッジは有用な指標ですが、テストの品質を評価するための唯一の基準であってはなりません。
- カバレッジ タイプ: カバレッジには、行カバレッジ、ブランチ カバレッジ、関数カバレッジなど、いくつかのタイプがあることに注意してください。
- 継続的な監視: カバレッジ チェックを CI/CD パイプラインに統合して、カバレッジの変更を継続的に監視します。
- コード レビュー: コード レビューの一部としてカバレッジ レポートを使用して、さらにテストが必要な領域を特定します。
このサブセクションでは、pytest のテストカバレッジのベストプラクティスについて、基本、高度な使用法、考慮事項などについて詳しく説明します。 これにより、開発者とテストエンジニアがpytestで効果的なカバレッジテストの学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTログとレポートのベストプラクティスを詳しく説明してください
もちろん、以下は「ログとレポート」セクションの詳細な説明です。 これは、チュートリアルの「ベスト プラクティス」セクションの重要なサブセクションとして機能します。
ログとレポート
定義
ログとレポートは、テストのパフォーマンスを追跡するのに役立つだけでなく、チームに貴重なフィードバックを提供するためにも、テストプロセスの重要な部分です。
基本的な使い方
- 組み込みのログを使用する:pytestは、テストやフィクスチャで使用できるPythonの組み込みモジュールをサポートしています。 pythonCopy code
logging
import logging def test_logging(): logging.info("This is an info message")
- 簡単なレポートを生成する: デフォルトでは、pytest は簡単なテストレポートをコンソールに出力します。 バッシュコピーコード
pytest
高度な使用法
- 詳細レポートの生成: JUnit形式で詳細なテストレポートを生成するオプションを使用します。 バッシュコピーコード
--junitxml
pytest --junitxml=path/to/report.xml
- カスタムログ構成: ファイル内のログ設定をカスタマイズできます。 コードをコピーする
pytest.ini
# pytest.ini [pytest] log_cli = true log_cli_level = INFO
- プラグインを使用してレポートを生成する: 次のような、より豊富なテストレポートを生成するために使用できるいくつかのpytestプラグインがあります。 バッシュコピーコード
pytest-html
pip install pytest-html pytest --html=path/to/report.html
- ログキャプチャ: オプションを使用して、標準出力と標準エラーのキャプチャを制御します。 バッシュコピーコード
--capture
pytest --capture=no # 不捕获输出
筆記
- ログレベル:無駄な情報を出力しすぎないように、適切なログレベルを選択してください。
- 機密情報: 機密情報や個人情報をログやレポートにエクスポートしないでください。
- レポートの保存: テスト レポートが安全でアクセス可能な場所に保存されていることを確認します。
- 継続的インテグレーション: ログとレポートを CI/CD パイプラインに統合して、このプロセスを自動化し、リアルタイムのフィードバックを提供します。
このサブセクションでは、pytest でのロギングとレポート作成のベストプラクティスについて、基本、高度な使用法、考慮事項などについて詳しく説明します。 これにより、開発者とテストエンジニアがPytestで効果的なログとレポート生成の学習の旅を始めるための明確でわかりやすいパスが提供されます。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。
ChatGPTの次のステップのためのさらなる学習リソースで結論を詳細に説明してください
もちろん、以下は「次のステップのための結論とさらなる学習リソース」のセクションの詳細な説明です。 これでチュートリアルは終了です。
次のステップのためのさらなる学習リソースを含む結論
結論
このチュートリアルでは、インストール、構成、基本概念、フィクスチャの使用、パラメーター化されたテスト、マーキングとラベル付け、例外の処理、高度なトピック、ベストプラクティスなど、pytestの基本を習得している必要があります。 この知識は、Pythonテストの分野でさらに開発するための強固な基盤を提供します。
その他の学習リソース
- 公式ドキュメント: pytest の公式ドキュメントは、最も権威のある包括的なリソースです。
- オンラインコースとチュートリアル:Udemy、Coursera、YouTubeなどのWebサイトでは、多数のpytestチュートリアルとコースを提供しています。
- コミュニティとフォーラム:スタックオーバーフローとRedditは、問題を解決し、ベストプラクティスを学ぶのに最適な場所です。
- 書籍: Python のテストと pytest に関する書籍がいくつかあり、例えば “Python Testing with pytest” があります。
- オープンソースプロジェクト: pytest を使用して実践的な経験を積む GitHub 上のいくつかのオープンソースプロジェクトに参加します。
- ブログと記事: 多くの開発者やテストエンジニアは、pytest に関する高品質の記事をブログや Medium で公開しています。
- ワークショップとセミナー:pytest関連のワークショップやワークショップに時々参加して、知識とネットワークを広げてください。
次に
- 練習:学ぶための最良の方法はそれをすることです。 学んだことをプロジェクトに実装してみてください。
- 継続的な学習:テストは急速に進化している分野です。 関連するニュースフィードやソーシャルメディアチャネルを購読して、最新の状態を保ちます。
- 貢献する: pytest コミュニティへの貢献は、ドキュメントを書くか、問題を解決して新しい機能を追加することで検討してください。
この最後のセクションでは、チュートリアル全体の内容を要約するだけでなく、読者が学習の旅を続けることができるように、さまざまな方法とリソースも提供します。 うまくいけば、これはあなたのpytestチュートリアルを作成するときに貴重な情報を提供するのに役立つでしょう。