selenium-Python之unittest(三)

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)

目錄如下:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章