選択したテストの実行とテスト自動検出の使用
Python の unittest
モジュールは、コードを効果的にテストするための強力なツールです。特定のテストを実行したり、プロジェクト内のすべてのテストを自動的に検出して実行したりするいくつかの方法を提供します。これは、テスト中にコードの特定の部分に焦点を当てたり、プロジェクト全体のテストスイートをすばやく確認したりするのに非常に便利です。
特定のテストの実行
場合によっては、テストスイート全体ではなく、特定のテストメソッドやテストクラスのみを実行したいことがあります。これは、unittest
モジュールでパターンオプションを使用することで実現できます。これにより、どのテストを実行するかをより細かく制御でき、コードの特定の部分をデバッグする際に便利です。
Stock
オブジェクトの作成に関連するテストのみを実行するには:
python3 -m unittest teststock.TestStock.test_create
このコマンドでは、python3 -m unittest
は Python に unittest
モジュールを実行するよう指示します。teststock
はテストファイルの名前、TestStock
はテストクラスの名前、test_create
は実行したい特定のテストメソッドです。このコマンドを実行することで、Stock
オブジェクトの作成に関連するコードが期待通りに動作しているかをすばやく確認できます。
TestStock
クラス内のすべてのテストを実行するには:
python3 -m unittest teststock.TestStock
ここでは、特定のテストメソッド名を省略しています。したがって、このコマンドは teststock
ファイル内の TestStock
クラス内のすべてのテストメソッドを実行します。これは、Stock
オブジェクトのテストケースの全体的な機能を確認したい場合に便利です。
テスト自動検出の使用
unittest
モジュールは、プロジェクト内のすべてのテストファイルを自動的に検出して実行することができます。これにより、特に多数のテストファイルがある大規模なプロジェクトで、実行する各テストファイルを手動で指定する手間を省くことができます。
- 現在のファイルをテスト自動検出の命名パターンに従うようにリネームする:
mv teststock.py test_stock.py
unittest
のテスト自動検出メカニズムは、test_*.py
という命名パターンに従うファイルを探します。ファイルを test_stock.py
にリネームすることで、unittest
モジュールがこのファイル内のテストを見つけて実行しやすくなります。
- テスト自動検出を実行する:
python3 -m unittest discover
このコマンドは、unittest
モジュールに、現在のディレクトリ内で test_*.py
パターンに一致するすべてのテストファイルを自動的に検出して実行するよう指示します。ディレクトリを検索し、一致するファイル内に見つかったすべてのテストケースを実行します。
- テストを検索するディレクトリを指定することもできます:
python3 -m unittest discover -s . -p "test_*.py"
ここで:
-s .
は、検出を開始するディレクトリを指定します(この場合は現在のディレクトリ)。ドット (.
) は現在のディレクトリを表します。別の場所でテストを検索したい場合は、これを別のディレクトリパスに変更することができます。
-p "test_*.py"
は、テストファイルを一致させるパターンです。これにより、test_
で始まり、.py
拡張子を持つファイルのみがテストファイルとして扱われます。
前と同様に、12 のテストすべてが実行され、合格するはずです。
- 実験との一貫性のために、ファイルを元の名前に戻す:
mv test_stock.py teststock.py
テスト自動検出を実行した後、実験環境を一貫させるためにファイルを元の名前に戻します。
テスト自動検出を使用することで、各テストファイルを個別に指定することなく、プロジェクト内のすべてのテストを簡単に実行できます。これにより、テストプロセスがより効率的になり、エラーが発生しにくくなります。