unittest单元测试框架之unittest 框架的总结2(八)

unittest 下的属性

1.Unittest.TestCase:所有测试用例类继承的基本类

2.Unittest.main():将一个单元测试模块变为可直接运行的测试脚本

 If __name__ == “__main__”:
Unittest.main()

3.Unittest.TestSuite:创建测试套件

4.unittest.TextTestRunner():unittest 框架的 TextTestRunner()类,通过该类下面的 run()方 法来运行 suite 所组装的测试用例,入参为 suite 测试套件。

5.unittest.defaultTestLoader(): defaultTestLoader()类,通过该类下面的 discover()方法可 自动根据测试目录 start_dir 匹配查找测试用例文件(test*.py),并将查找到的测试用例 组装到测试套件,因此可以直接通过 run()方法执行 discover

6.unittest.skip():跳过某条测试用例

7.TestCase 类的属性:

  • setUp():setUp()方法用于测试用例执行前的初始化工作。如测试用例中需要访问数据 库,可以在 setUp 中建立数据库连接并进行初始化。如测试用例需要登录 web,可 以先实例化浏览器。
  • tearDown():tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接。 关闭浏览器。
  • 断言方法:assert

8.TestSuite 类:把测试用例加载到测试套件中,常用方法是 addTest()与 addTests()

9.TextTestRunner():下 run 方法,执行测试套件中的测试用例。

案例:

test

 from selenium import webdriver
import unittest
from time import sleep
class MsTest(unittest.TestCase):
  # 初始化
  def setUp(self):   self.driver = webdriver.Firefox()
  self.driver.implicitly_wait(10)
  self.base_url = "http://localhost:8032/ms/admin.php/Index/index"
  # 登录与退出
  # 测试方法一定要以 test_开头
  def test_Login(self):
    driver = self.driver
    driver.get(self.base_url)      driver.find_element_by_xpath("//input[@id='username']").send_keys("admin")      driver.find_element_by_xpath("//input[@id='password']").send_keys("admin")
    driver.find_element_by_xpath("//button[@class='btn btn-default btnblock']").click()
    sleep(4)
    driver.find_element_by_xpath("//a[contains(.,'Hi, admin! ')]").click()      driver.find_element_by_xpath("//a[@href='/ms/admin.php/Public/logout']").click()
  def tearDown(self):
    self.driver.quit()
  if __name__ == "__main__":
    unittest.main()

runtest

 import unittest
from UnittestDemo.MSDemo.ms_test import MsTest
# 构建测试套件
suite = unittest.TestSuite()
suite.addTest(MsTest("test_Login"))
# 执行测试
if __name__ == "__main__":
  runner = unittest.TextTestRunner()
  runner.run(suite)
上一篇:[leetcode]14. Longest Common Prefix 最长公共前缀


下一篇:unittest单元测试框架之unittest 框架的总结(七)