import unittest
from parameterized import parameterized
# noinspection PyMethodParameters,PyMethodMayBeStatic
def generate():
return [
["JackTest", "Jack", "21"],
["AndyTest", "Andy", "25"],
["ZedTest", "Zed", "18"],
["BradTest", "Brad", "30"]
]
def get_test_name_index(method_name_str):
test_name = method_name_str.split("_")[-1]
generator = generate()
for i in range(len(generator)):
if test_name in generator[i]:
return i
def cmp(a, b):
return (a > b) - (a < b)
# noinspection PyUnusedLocal
def reorder(self, x, y):
return cmp(get_test_name_index(x), get_test_name_index(y))
unittest.TestLoader.sortTestMethodsUsing = reorder
class OrderTest(unittest.TestCase):
# noinspection PyMethodParameters,PyUnusedLocal
def custom_name_func(testcase_func, param_num, param):
return testcase_func.__name__ + '_' + param.args[0]
@parameterized.expand(generate(), name_func=custom_name_func)
def test_show(self, test_name, name, age):
print("Test name: '%s', Name: '%s', age: '%s'" % (test_name, name, age))
python3 -m pytest -vv .\OrderedParameterizedTest.py
OrderedParameterizedTest.py::OrderTest::test_show_JackTest PASSED [ 25%]
OrderedParameterizedTest.py::OrderTest::test_show_AndyTest PASSED [ 50%]
OrderedParameterizedTest.py::OrderTest::test_show_ZedTest PASSED [ 75%]
OrderedParameterizedTest.py::OrderTest::test_show_BradTest PASSED [100%]
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。