pytest advanced conftest.py

序文

これまでのエッセイでは、基本的にはpytestコマンドの使用、ユースケースのコレクション、フィクスチャの使用、アクションの範囲を理解してきました。本日は、conftest.pyファイルの役割と実際のプロジェクトでのこのファイルの使用方法を簡単に紹介します。

シナリオ例

まず、そのような問題について考えてみましょう。テストを作成している場合、次の操作を完了するには、テストファイルの各テストケースにログインする必要があります。これには、conftest.pyファイルの使用をマスターする必要があります。

コード例

次のようにディレクトリを作成します

ConftestFile 
    | conftest.py 
    | test_file_01.py 
    | test_file_02.py 
    | __init __ Pyと。
#conftest.py 
import pytest @ pytest.fixture() def login():  
  print( '\ n ----------------- conftestファイルログインメソッドが実行を開始------- --------------------- ')
  print(' login in conftest.py ')
  print(' -------------- --conftest.pyファイルログインメソッドの実行終了--------------------------- ')
#test_file_01.py 
def test_01(login):
  print( '\ n ------------------ユースケースファイル1テストケース1が実行を開始--------- --------- ')
  print(' login after:in test_file_01-> case test_01 ')
  print(' -------------------ユースケースファイル1テストケース1の実行の終了------------------------ ')
#test_file_02.py 
def test_02(login):
  print( '\ n ------------------ユースケースファイル2テストケース2が実行を開始--------- --------- ')
  print(' login after:in test_file_01-> case test_01 ')
  print(' -------------------ユースケースファイル2テストケース2の実行の終了------------------------ ')

まず、このサンプルコードを実行して出力を確認しましょう

1. pycharmでは、ディレクトリを右クリックして実行できます

2. cmdディレクトリにpytest -vsと入力して実行します

test_file_01.py 
--------------- conftestファイルログインメソッドが実行を開始-------------------------- - 
conftest.pyでログイン
----------------conftest.pyファイルのログイン方法が実行を終了しました------------------- -------- 
------------------ユースケースファイルは--------------- 1 1テストを開始しました--- 
ログイン後:in test_file_01->ケースtest_01 
-------------------使用ケースファイル1テストケース1の実行終了----------- ------------- 
                                                        [50%] 
test_file_02.py 
--------------- conftestファイルのログインメソッドが実行を開始します--------- ------------------- 
conftest.pyへの
ログイン---------------- conftest.py ファイルログインメソッドの実行が完了しました- -------------------------  
------------------例文書2使用テスト2実行を開始------------------
ログイン後:test_file_01->ケースtest_01 
-------------------ユースケースファイル2テストケース2の実行終了---------------- ---------- 
                                                        [100%] 

========================== 0.04秒で2回合格===== ======================

各テストファイルのテストメソッドが実行前にconftest.pyファイルのloginメソッドを実行していることがわかりますこのモードにより、テストケースの前提条件の準備を実現できます。

conftestファイルの実際のアプリケーションは、フィクスチャと組み合わせて使用​​する必要があります。その後、フィクスチャのパラメーターのスコープは、conftestのフィクスチャの特性にも適用されます。

4つのスコープパラメータ、つまり「関数」、「モジュール」、「クラス」、「セッション」があり、デフォルトは関数です。

==関数:各テストが実行されます。デフォルトは関数のスコープです(各メソッド(関数)は1回実行されます)。

==クラス:各クラスのすべてのテストは1回だけ実行されます(各クラスは1回実行されます。クラスには複数のメソッド呼び出しがあり、最初のメソッドが呼び出されたときにのみ実行されます)。

==モジュール:各モジュールのすべてのテストは1回だけ実行されます(.pyファイルは1回実行されます。.pyファイルには複数のクラスとメソッドが含まれる場合があります)。

==パッケージ/セッション:各セッションは1回だけ実行されます(複数のファイルが1回呼び出され、.pyファイルをクロスできます)。

まとめ

理論はしばしば実際的な検証を必要とするため、conftestの特定の使用を習得するには、より多くのコード検証を使用する必要があります!上記のコードは、テストファイルのテスト関数がconftest.pyを使用していることを確認しました。実際には、関数が使用されるだけでなく、多くの場合、conftest.pyファイルも存在しません。以下は私がまとめた特徴です、私はあなたを助けたいと思います!

1. conftest.pyファイルの名前は固定されており、変更できません

2.ファイルとユースケースファイルが同じディレクトリにある場合、conftest.pyはディレクトリ全体に作用します

3. __init__.pyファイルは、conftest.pyファイルが配置されているディレクトリに存在する必要があります

4. conftest.pyファイルを他のファイルでインポートすることはできません

5.同じディレクトリ内のすべてのテストファイルは、実行前にconftest.pyファイルを実行します

おすすめ

転載: www.cnblogs.com/victory-0315/p/12718795.html