在使用unittest过程中,发现有时候如果想在测试用例之间共享变量,无法直接实现。查询之后发现解决方式如下:
1.setupclass里设置self.xxx变量,不同用例之间无法实时共享参数变动
2.setupclass里设置globals().[“xxx”]变量,不同用例之间可以实时共享参数变动
3.setupclass里设置 ClassName.XXX变量,不同用例之间可以实时共享参数变动
4.setupclass之前设置 XXX变量
1.setupclass里设置self.xxx变量,不同用例之间无法实时共享参数变动
最终结果:
- 说明在unttest框架中,testcase中间不共享变量的值,但是都可以从setupclass里面读取统一的变量值
可以setup时候设置全局变量,不同的case之间就可以共享这个变量了
2.setupclass里设置globals().[“xxx”]变量,不同用例之间可以实时共享参数变动
最终结果为:
3.setupclass里设置 ClassName.XXX变量,不同用例之间可以实时共享参数变动
最终结果:
- 我们运行test1的时候,给Mydemo.a可以获取全局变量的a,打印完之后又设置了新的值
- test2运行的时候,通过2中方式,都能获取到了全局变量的值。
4.setupclass之前设置 XXX变量
1.在setup之前设置的变量status,也是全局变量,无法在测试用例里面修改这个全局变量的值。
2.即使通过globals().[‘status’]设置全局变量的值,但是globals().[‘status’]与单独设置的status的值,不是一个变量
3.测试用例读取顺序,先读取局部变量里面的值,再去读取全局变量的值。