python unittest: can't call decorated test

前端 未结 4 1010
广开言路
广开言路 2021-01-12 15:43

I have a pretty large test suite and I decorated some of the test_* functions. Now I can\'t call them by ./test.py MySqlTestCase.test_foo_double, python3.2 comp

4条回答
  •  甜味超标
    2021-01-12 16:23

    Based on this post:

    You can do it this way:

    def decorator(test):
        def wrapper(self):
            # do something interesting
            test(self)
            # do something interesting
        wrapper.__name__ = test.__name__
        return wrapper
    

    This solution has two advantages over method with @functools.wrap:

    • doesn't need anything to import
    • doesn't need to know test name when decorator is created

    Thanks to the second feature of this solution, it is possible to create decorators for many tests.

提交回复
热议问题