Python unittest order 02

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容