如何为单元测试套件做一个设置

How to do one setUp for a unit test suite

我有以下两个单元测试:

import unittest
from unittest import TestCase


class TestUM(unittest.TestCase):

    def setUp(self):
        self.client = SeleniumClient()

    def test_login(self):
        self.client.login()
        self.assertIn("my-data", self.client.driver.current_url)
        print ('Log in successful.')

    def test_logout(self):
        self.client.logout()
        print ('Log out successful.')


if __name__ == '__main__':
    unittest.main()

但是,它 setUp 执行了两次 -- 每个单元测试一次。有没有一种方法可以对 TestUM 的所有单元测试进行一次设置?如果是这样,我该怎么做?

您可以使用 setupClass

class TestUM(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.client = SeleniumClient()

documentation 开始,此方法仅在 class 中的测试为 运行.

之前调用一次