次のように、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 のままです。
どちらでもいいですか
- 関数内からマーカーを渡します。
- または、この例で開始のカウントを動的に変更する方法はありますか?
PS これは、現在テスト データを保存できる最善の方法です。
testcaseid.marktc を定義する方法は次のとおりです。// testrailthingy.py
class testcaseid(object):
@staticmethod
def marktc(*ids):
return pytest.mark.testrail(ids=ids)