Python3

Python unittest order 02

2022-01-16  本文已影响0人  JaedenKil

Run python unittest by test definition order:

import unittest
import inspect


def cmp(a, b):
    return (a > b) - (a < b)


def get_line_no(method_name_str):
    return inspect.getsourcelines(getattr(OrderTest, method_name_str))[1]


print()


# noinspection PyUnusedLocal
def reorder(self, x, y):
    return cmp(get_line_no(x), get_line_no(y))


unittest.TestLoader.sortTestMethodsUsing = reorder


# noinspection PyMethodMayBeStatic
class OrderTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass")

    def setUp(self):
        print("setUp")

    def tearDown(self):
        print("tearDown")

    def test_2_test(self):
        print("test_2_test")

    def test_3_test(self):
        print("test_3_test")

    def test_0_test(self):
        print("test_0_test")

    def test_first_test(self):
        print("test_first_test")

    def test_last_test(self):
        print("test_last_test")

    def test_unknown_test(self):
        print("test_unknown_test")
$ python3 -m pytest -s main.py -vv
=============================================================================================== test session starts =============================================================================================== platform win32 -- Python 3.7.3, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- C:\Python37\python3.exe
cachedir: .pytest_cache
rootdir: D:\PythonProject\UnitTest
collecting ...
collected 6 items

main.py::OrderTest::test_2_test setUpClass
setUp
test_2_test
tearDown
PASSED
main.py::OrderTest::test_3_test setUp
test_3_test
tearDown
PASSED
main.py::OrderTest::test_0_test setUp
test_0_test
tearDown
PASSED
main.py::OrderTest::test_first_test setUp
test_first_test
tearDown
PASSED
main.py::OrderTest::test_last_test setUp
test_last_test
tearDown
PASSED
main.py::OrderTest::test_unknown_test setUp
test_unknown_test
tearDown
PASSEDtearDownClass
上一篇下一篇

猜你喜欢

热点阅读