0

次のように、Python ファイルからテスト データを読み取っています。

//testdata.py -- セットのリストです。

TEST_DATA = [
(
{"test_scenario":"1"}, {"test_case_id":1}
),
(
{"test_scenario":"2"}, {"test_case_id":2}
)
]

ここで、このテスト データを pytest テスト ファイルの一部として使用します。

// test.py
// import testdata

test_data = testdata.TEST_DATA   
start = 0

class TestOne():
    
     @pytest.mark.parametrize(("test_scenario,testcase_id"),test_data)
     @testcaseid.marktc[test_data[start][1]["test_case_id"]]
     def testfunction():
         global start
         start = start + 1
         // Doing test here. 

開始を印刷すると、その値が継続的に変化します。しかし、pytest の結果を取得しようとしても、テスト ケース ID が適切に記録されていないため、start = 0 のままです。

どちらでもいいですか

  1. 関数内からマーカーを渡します。
  2. または、この例で開始のカウントを動的に変更する方法はありますか?

PS これは、現在テスト データを保存できる最善の方法です。

testcaseid.marktc を定義する方法は次のとおりです。// testrailthingy.py

class testcaseid(object):

    @staticmethod
    def marktc(*ids):
        return pytest.mark.testrail(ids=ids)
4

0 に答える 0