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 结果时,我仍然不断得到 start = 0,因为我的测试用例 ID 没有被正确记录。

我也可以吗

  1. 从函数内部传递标记。
  2. 或者有没有办法在这个例子中动态改变开始计数?

PS 这是我目前能够存储测试数据的最佳方式。

这是我定义 testcaseid.marktc 的方式。// testrailthingy.py

class testcaseid(object):

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

0 回答 0