第8章 Pytest for DevOps DevOpsのためのPytest
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
継続的インテグレーション、継続的デリバリ、デプロイ、そして一般化されたパイプラインのワークフローは、それなりに考え抜かれたものであれば、検証で埋め尽くされる。この検証は、あらゆる段階で、そして重要なオブジェクトを達成するときに起こりうる。
例えば、デプロイを作成するための長いステップの途中で、重要なファイルを取得するためにcurl コマンドが呼び出された場合、それが失敗してもビルドを継続すべきだと思うだろうか?おそらくそうではないだろう!curl には、HTTPエラーが発生した場合にゼロ以外の終了ステータス(--fail )をプロデューサするために使用できるフラグがある。この単純なフラグの使い方は、検証の一種である。リクエストが成功したことを保証し、そうでなければビルドステップを失敗させる。キーワードは、何かが成功したことを保証することであり、これがこの章の核心である。
Pythonがミックスされ、pytest のようなテストフレームワークを利用してシステムの検証を扱えるようになると、検証について考えることがより満足のいくものになる。
この章では、驚異的なpytest フレームワークを使った Python でのテストに関連するいくつかの基本をレビューし、次にフレームワークのいくつかの高度な機能に飛び込み、最後にシステム検証を行うことができるpytest のプラグインであるTestInfraプロジェクトについて詳しく説明する。
pytestでスーパーパワーをテストする
pytest ・フレームワークについて、私たちは良いことを言い尽くすことができない。Holger Krekelによって作成されたこのフレームワークは、現在多くの人々によってメンテナンスされており、私たちの日常業務の一部となっている高品質のソフトウェアをプロデューサとして素晴らしい仕事をしている。フル機能のフレームワークであるため、プロジェクトの完全なドキュメントを繰り返すことなく、有用な紹介を提供できるほど範囲を絞り込むのは難しい。
チップ
pytest 、そのドキュメントには多くの情報、例、機能の詳細があり、目を通す価値がある。プロジェクトが新しいリリースやテストを改善するさまざまな方法を提供し続けているため、学ぶべき新しいことが常にある。
Alfredoが初めてフレームワークに触れたとき、彼はテストを書くのに苦労していて、Pythonの組み込みのunittest (この章ではこの違いを後で説明する)を使ったテストのやり方に従うのが面倒だと発見した。彼がpytestの魔法のようなレポートに夢中になるのに数分かかった。それは、彼がこれまで書いてきたテストの方法から離れることを強いるものではなく、何の修正もなく、箱から出してすぐに動いた!この柔軟性はプロジェクト全体に表れており、現在では不可能なことでも、プラグインや構成ファイルによって機能を拡張することができる。
よりわかりやすいテストケースの書き方を理解し、コマンドラインツール、レポーティングエンジン、プラグインの拡張性、フレームワークのユーティリティを活用することで、間違いなく全体的に良くなるテストをもっと書きたくなるだろう。
pytestを使い始める
最も単純な形として、pytest は Python のテストを発見して実行するコマンドラインツールである。ユーザが内部を理解することを強制しないので、簡単に使い始めることができる。このセクションでは、テストの書き方から(自動的に検出されるように)ファイルをレイアウトする方法まで、最も基本的な機能のいくつかを紹介し、最後に ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access