1. 在setupclass中使用cls.***设置变量,不同用例之间无法实时共享参数变动
class Login(unittest.TestCase): """各testcase之间,不共享变量的值""" """可以在setup时设置全局变量,不同的case之间共享这个变量""" @classmethod def setUpClass(cls): cls.a = 123 def test_1(self): self.a = 333 print(f'test_1中:{self.a}') # 打印:test_1中:333 def test_2(self): print(f'test_2中:{self.a}') # 打印:test_2中:123
2. 在setupclass中使用globals()["***"]设置变量,不同用例之间可以实时共享参数变动
class Login(unittest.TestCase): """不同用例之间,可以实时共享参数变动""" @classmethod def setUpClass(cls): globals()['aaa'] = 123 def test_1(self): globals()['aaa'] = 333 print(f'test_1中:{globals()["aaa"]}') # 打印:test_1中:333 def test_2(self): print(f'test_2中:{globals()["aaa"]}') # 打印:test_2中:333
3. 在setclass中使用className.***设置变量,不同用例之间可以实时共享参数变动
class Login(unittest.TestCase): @classmethod def setUpClass(cls): Login.a = 123 def test_1(self): Login.a = 333 print(f'test_1中:{Login.a}') # 打印:test_1中:333 def test_2(self): print(f'test_2中:{Login.a}') # 打印:test_2中:333
4. 在setupcalss之前设置变量
1)是全局变量,但在测试用例中,无法修改全局变量的值
2)即使通过globals()["***"]修改,和a也不是一个变量
class Login(unittest.TestCase): a = 123 @classmethod def setUpClass(cls): globals()["a"] = 9 def test_0(self): print(f'test_0中:{self.a}') # 打印:test_0中:123 print(f'test_0中:{globals()["a"]}') # 打印:test_0中:9 def test_1(self): a = 333 print(f'test_1中:{a}') # 打印:test_1中:333 def test_2(self): print(f'test_2中:{self.a}') # 打印:test_2中:123