markdown Python unittest`setUp`继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Python unittest`setUp`继承相关的知识,希望对你有一定的参考价值。

In some cases for Python unit tests, we want to automatically perform `setUp` methods in as declared in a base class. However, we still want `setUp` to work as per normal in the subclass. The following code will proxy the new `setUp` function to run it's base class' and the new one.

```python
# Define a common test base for starting servers
class MyBaseTestCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        """On inherited classes, run our `setUp` method"""
        # Inspired via http://stackoverflow.com/questions/1323455/python-unit-test-with-base-and-sub-class/17696807#17696807
        if cls is not MyBaseTestCase and cls.setUp is not MyBaseTestCase.setUp:
            orig_setUp = cls.setUp
            def setUpOverride(self, *args, **kwargs):
                MyBaseTestCase.setUp(self)
                return orig_setUp(self, *args, **kwargs)
            cls.setUp = setUpOverride

    def setUp(self):
        """Do some custom setup"""
        self.abc = True


class ItemCreateTest(MyBaseTestCase):
    def setUp(self):
        """Do more custom setup"""
        self.def = True

    def test_verify_both_setups_run(self):
        """Test for our current usage"""
        self.assertEqual(self.abc, True)
        self.assertEqual(self.def, True)
    
```

以上是关于markdown Python unittest`setUp`继承的主要内容,如果未能解决你的问题,请参考以下文章

Python搭配unittest

python单元测试框架unittest

python+selenium+unittest测试框架1-unittest单元测试框架和断言

python unittest学习笔记

python unittest用例执行方式

Python unittest模块心得