美文网首页Python3
Python unittest order 02

Python unittest order 02

作者: JaedenKil | 来源:发表于2022-01-16 01:57 被阅读0次

    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
    

    相关文章

      网友评论

        本文标题:Python unittest order 02

        本文链接:https://www.haomeiwen.com/subject/wezxhrtx.html