unittest详解(一) unittest框架

unittest 介绍了4 个重要的概念: test case, test suite, test runner,test fixture。

    1、testcase: 一个TestCase 的实例就是一个测试用例, 就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

  setUp 用于设置初始化工作,在每一个测试用例前先被执行,它与tearDown方法相呼应,后者在每一个测试用例执行后被执行。这里的初始化工作定义了浏览器启动和基础URL 地址。

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "https://172.1.1.1/"
        self.verificationErrors = []
        self.accept_next_alert = True

  tearDown 方法在每个测试方法执行后调用,这个方法用于完成测试用例执行后的清理工作,如退出浏览器、关闭驱动,恢复用例执行状态等。在setUp()方法中定义了verificationErrors 为空数组,这里通过assertEqual()比较其是否为空,如果为空说明用例执行的过程过程中没有出现异常,否则将抛出AssertionError 异常:

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

  

  2、testsuite: 对一个功能的验证往往是需要多测试用例的,可以把多的测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它用来组装单个测试用例,而且TestSuite 也可以嵌套TestSuite。

testSuite()可以被看作一个容器(测试套件),通过addTest 方法我们可罗列具体所要执行的测试用例。如果使用unittest.main() 的话默认会执行所有以test 开头的测试用例。

  

  3、testrunner: TextTestRunner 是来执行测试用例的,其中的run(test)用来执行TestSuite/TestCase。测试的结果会保存到TextTestResult 实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

  

  4、testfixture: 对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase 的setUp()和tearDown()方法来实现. 

 

猜你喜欢

转载自www.cnblogs.com/xiatian09/p/9774039.html
今日推荐