unittest指定跳過某些方法


背景:在執行單元測試中,有些方法執行耗時,不想全部執行,想忽略執行,那就需要跳過某方法執行

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()

  測試結果

 

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM