背景:在執行單元測試中,有些方法執行耗時,不想全部執行,想忽略執行,那就需要跳過某方法執行
1.無條件跳過某方法
@unittest.skip("skipping")
2.使用變量的方式,指定忽略測試方法
a=10 @unittest.skipIf(a > 5, "condition is not satisfied!")
表示if a>5為真,就跳過此方法
3.指定測試平台忽略測試方法
@unittest.skipUnless(sys.platform.startswith("Linux"), "requires Linux")
如果不是liunx ,就直接跳過,python可以使用sys,查看自己的平台信息
測試方法
import random import unittest import sys class TestSequenceFunctions(unittest.TestCase): a = 10 def setUp(self): self.seq = list(range(10)) @unittest.skip("skipping") # 無條件忽略該測試方法 def test_shuffle(self): random.shuffle(self.seq) self.seq.sort() self.assertEqual(self.seq, list(range(10))) self.assertRaises(TypeError, random.shuffle, (1, 2, 3)) # 如果變量a > 5,則忽略該測試方法 @unittest.skipIf(a > 5, "condition is not satisfied!") def test_choice(self): element = random.choice(self.seq) self.assertTrue(element in self.seq) # 除非執行測試用例的平台是Linux平台,否則忽略該測試方法 win32是windows @unittest.skipUnless(sys.platform.startswith("Linux"), "requires Linux") def test_sample(self): with self.assertRaises(ValueError): random.sample(self.seq, 20) for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq) if __name__ == '__main__': unittest.main()
測試結果