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)
目录如下: