unittest之skip
skip裝飾器一共有三個 :
- unittest.skip(reason)—無條件跳過用例,用例不會被執行;
- unittest.skipIf(condition, reason)—條件爲真時,跳過該用例,用例不會被執行;
- unittest.skipUnless(condition, reason)—條件爲假時,跳過該用例,用例不被執行;
代碼示例如下:
#encoding=utf-8
import unittest
import string
from selenium import webdriver
from time import sleep
class Test(unittest.TestCase):
def setUp(self):
print 'start'
@unittest.skipUnless(1==1,'skipUnless is false ,so not run test_assert_equal')
#結果爲 False 就 skip 這條用例
def test_assert_equal(self):
self.assertEqual(1,1,'not equal ')
def test_assert_not_equal(self):
self.assertNotEqual(1,2,'1 not equal 2')
def test_assert_True(self):
self.assertTrue(1==1, '1!=2')
@unittest.skipIf(1==2,'skipIf is true, so not run test_assert_False')
#結果爲 True 就 skip 該條用例
def test_assert_False(self):
self.assertFalse(1==2, '1!=2')
#無條件跳過這條用例,不執行
@unittest.skip('not run this case: test_assert_In')
def test_assert_In(self):
self.driver=webdriver.Chrome(executable_path='c:\\Python27\\chromedriver')
self.driver.get("https://www.baidu.com/")
sleep(1)
self.assertIn(u'百度',self.driver.page_source,'百度 is not in page_spurce')
def test_assert_instance(self):
self.assertIsInstance(1,int,'1 is not instance int')
def tearDown(elf):
print 'over'
if __name__=='__main__':
unittest.main()
執行腳本run.py如下:
#encoding=utf-8
import unittest
from test_case import test01
import time
suite=unittest.TestSuite()
suite.addTest(test01.Test('test_assert_equal'))
suite.addTest(test01.Test('test_assert_False'))
suite.addTest(test01.Test('test_assert_In'))
if __name__=="__main__":
with open('unittestTextReport.txt','a') as fp:
fp.write('\n')
fp.write(time.strftime('%Y-%m-%d %H:%M:%S')+' 測試執行結果'+'\n')
runner=unittest.TextTestRunner(stream=fp,verbosity=2)
runner.run(suite)
執行結果如下:
2017-11-07 18:06:17 測試執行結果
test_assert_equal (test_case.test01.Test) ... ok
test_assert_False (test_case.test01.Test) ... ok
test_assert_In (test_case.test01.Test) ... skipped 'not run this case: test_assert_In'
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK (skipped=1)
目錄如下: