(引用) unittest测试驱动之执行测试(三)
转载:http://www.wtoutiao.com/p/ydeoyY.html
在unittest的模块中,提供了TestRunner类来进行运行测试用例,在实际的应用中,经常使用的是TextTestRunner类,执行后,会已文字的形式打印出测试结果,见如下的测试执行的代码:
#coding:utf-8
from seleniumimport webdriver
import unittest
classbaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
def testBaiduTitle(self):
self.assertIn(u'百度一下,你就知道',self.driver.title)
def testBaiduTitle2(self):
self.assertNotEqual(u'bing下,你就知道',self.driver.title)
def tearDown(self):
self.driver.close()
if__name__=='__main__':
suite=unittest.TestSuite()
suite.addTest(baiduTest('testBaiduTitle'))
suite.addTest(baiduTest('testBaiduTitle2'))
#执行用例
runner=unittest.TextTestRunner()
runner.run(suite)
执行后,生成如下的测试结果,见截图:
一、unittest.skip()
unittest.skip('注释')是忽略此测试,但是得写忽略该case的原因,如在一个自动化的测试模块中,由于某些功能取消,那么对应的case也就不再执行,可以添加unittest.skip("忽略该测试用例"),见下面的代码示例,忽略了测试百度url的测试用例,见测试代码:
#coding:utf-8
from seleniumimport webdriver
importunittest,sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
classBaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(30)
def testTitle(self):
self.assertEqual(u'百度一下,你就知道',self.driver.title)
@unittest.skip('Ignore this test case')
def testUrl(self):
self.assertEqual('https://www.baidu.com/',self.driver.current_url)
def tearDown(self):
self.driver.quit()
@staticmethod
def suite():
suite=unittest.TestSuite(unittest.makeSuite(BaiduTest))
return suite
if__name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite())
见执行后的结果,跳过了testUrl测试用例的执行,见截图:
二、unittest.expectedFailure
unittest.expectedFailure指的是期望失败,见下面的测试代码。期望testUrl测试用例执行失败:
#coding:utf-8
from seleniumimport webdriver
importunittest,sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
classBaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(30)
def testTitle(self):
self.assertEqual(u'百度一下,你就知道',self.driver.title)
@unittest.expectedFailure
def testUrl(self):
self.assertEqual('http://www.baidu',self.driver.current_url)
def tearDown(self):
self.driver.quit()
@staticmethod
def suite():
suite=unittest.TestSuite(unittest.makeSuite(BaiduTest))
return suite
if__name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite())
见执行后的测试结果,会显示出来期望的结果是成功还是失败,见截图: