python pytest進級のconftest.py詳細解


前言
上記のいくつかの文章は、基本的には、pytest命令の使用、収集用例、finxtureの使用及び役割範囲を理解しています。今日は簡単にconft.pyファイルの役割と実際のプロジェクトについて紹介します。
実例的シーン
まず、私たちはテスト用の書類を作成する時、各テストファイルの用例を先に登録してから、後の操作を完成するとどうやって実現しますか?これは私たちがconft.pyファイルの使用を把握する必要があります。
インスタンスコード
次のディレクトリを作成します。

ConftestFile
|conftest.py
|test_file_01.py
|test_file_02.py
|__init__.py
# conftest.py
import pytest
@pytest.fixture()
def login():  
  print('
---------------conftest login ----------------------------')   print('login in conftest.py')   print('----------------conftest.py login ---------------------------') # test_file_01.py def test_01(login):   print('
------------------ 1 1 ------------------')   print('login after : in test_file_01->case test_01')   print('------------------- 1 1 ------------------------') # test_file_02.py def test_02(login):   print('
------------------ 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  login      ----------------------------
login in conftest.py
----------------conftest.py  login      ---------------------------
.
------------------    1    1    ------------------
login after : in test_file_01->case test_01
-------------------    1    1    ------------------------
[ 50%]
test_file_02.py 
---------------conftest  login      ----------------------------
login in conftest.py
----------------conftest.py  login      ---------------------------
.
------------------    2    2    ------------------
login after : in test_file_01->case test_01
-------------------    2    2    ------------------------
[100%]
========================== 2 passed in 0.04 seconds ===========================
各テストファイルのテストケースが実行される前にconftist.pyファイルのloginメソッドが実行されているのが見えます。このようなモードによって、テストケース前条件の準備ができます。
conftestファイルの実際のアプリケーションでは、fixtureと結合して使用する必要があります。fixtureでは、パラメータscopeもconftestでfixtureの特性を適用します。ここで説明します。
1.com nftestのfixtureのscopeパラメータがセッションである場合、すべてのテストファイルが実行される前に一回実行されます。
2.conftestの中でfixtureのscopeパラメータはmoduleであり、各テストファイルの実行前に一回のconftファイルの中のfixtureを実行します。
3.conftestの中でfixtureのscopeパラメータはクラスで、各テストファイルの中のテストクラスは実行前に一回のconftestファイルの中のfixtureを実行します。
4.conftestのfixtureのscopeパラメータがfunctionである場合、すべてのファイルのテストケースが実行される前に一回のconftファイルの中のfixtureを実行します。
締め括りをつける
理論は往々にして実践的な検証が必要であるので、conftestの具体的な使用を把握するには、コード検証を多く使う必要があります。上のコードはテストファイルのテスト関数がconft.pyを使っていることを検証しただけです。実際の仕事では関数だけでなく、conft.pyファイルも存在します。以下は私がまとめた特性です。皆さんに助けてもらいたいです。
1.co.ftest.pyファイルの名前は固定されていますので、何も変更できません。
2.ファイルと用例ファイルは同じディレクトリで、conftest.pyはディレクトリ全体に作用します。
3.conftest.pyファイルのディレクトリは必ず存在します。init_.pyファイル
4.conftest.pyファイルは他のファイルに導入できません。
5.すべての同じディレクトリのテストファイルが実行される前にconftest.pyファイルを実行します。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。