應用場景:全局變量status爲一直變動的變量,測試用例是否執行需要判斷status的值
設置全局變量的幾種方法,可以參考:
https://blog.csdn.net/chenmozhe22/article/details/81302780
[email protected]()裏面,可以在每個測試用例裏面變更的變量
import unittest
class AlienTest(unittest.TestCase):
globals()['status'] = 200 # 位置一
@classmethod
def setUp(self):
self.url = "http://www.baidu.com"
# globals()['status'] = 200 # 位置二
def test_1_alien(self):
# globals()['status'] = 200 # 位置三
print("test_1_status:", globals()['status'])
def test_2_alien(self):
globals()['status'] = 404
print("test_2_status", globals()["status"])
@unittest.skipIf(globals()['status'] != 500, "status不爲500,跳過測試用例")
def test_3_alien(self):
print("test_3_status:", globals()['status'])
if __name__ == '__main__':
unittest.main()
test_1_status: 200
test_2_status 404
Skipped: status不爲500,跳過測試用例
這種方式只有位置一可以test_3_alien(),位置二、位置三,都不行
[email protected]()裏面,不能在每個測試用例裏面變化的變量
import unittest
class AlienTest(unittest.TestCase):
status = 200 # 位置一
@classmethod
def setUpClass(cls):
cls.url = "http://www.baidu.com"
# cls.status = 200 #位置二
def test_1_alien(self):
# self.status = 200 #位置三
print("test_1_status:", self.status)
def test_2_alien(self):
self.status = 404
print("test_2_status", self.status)
@unittest.skipIf(status == 200, "status爲200,跳過測試用例")
def test_3_alien(self):
print("test_3_status:", self.status)
if __name__ == '__main__':
unittest.main()
test_1_status: 200
test_2_status 404
Skipped: status爲200,跳過測試用例
1.只有位置一、test_3_alien()測試用例裏面的status纔可以獲取到全局變量,位置二、位置三都不行
2.通過這種方式雖然可以設置全局變量並在unittest.skip()裏面使用,但是這個變量不能在每個測試用例裏面更改。