zoukankan      html  css  js  c++  java
  • day11_unittest单元测试框架

    同步IO就是在网上下载文件,立即就下载了
    异步IO效率比较高,就像买火车票不用在这等着,等票来了自动就通知你
    MQ就是存放消息的队列,取走一个就删除一个

    unittest单元测试框架的概念:
    什么是框架?
    框架就是别人已经封装好的一些代码,它已经有了一些功能,咱们直接用就行了

    什么是测试框架?
    unittest是单元测试的一个框架,unittest是python的标准包,可以直接导入用,执行用例,校验结果,产生测试报告这些步骤都可以通过unittest来实现

    import unittest
    class MyTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('什么时候执行我呢,我是setUpClass') # 这个是类下面所有用例运行之前先运行的

    @classmethod
    def tearDownClass(cls):
    print('什么时候执行我呢,我是tearDownClass') # 这个是类下面所有用例运行之后运行的

    def setUp(self): # setUp是每个用例运行之前都会先运行它,不管用例通过或者失败
    print('每个用例运行之前都会先运行我')

    def tearDown(self): # tearDown是每个用例运行之后都会运行它,不管用例通过或者失败
    print('每个用例运行之后都会先运行我')

    def test_gch(self):
    print('test_gch')
    self.assertEqual(1,1)

    def test_ssj(self):
    print('test_ssj')
    self.assertEqual('a','a')

    if __name__ == '__main__':
    unittest.main() # 运行所有测试用例,这种方式是不能产生报告的

    如果每条用例都要执行的一些同样的操作,那么就写到setUpClasstearDownClass里头,上面的代码运行结果如下:

    如果测试用例不是以test开头,那么不会运行它,每个def定义的函数代表一个用例,assertEqual是比较两个值是否相等,如果代码里有多个class,unittest.main()也会运行所有的用例

    unittest中运行用例的顺序是按照test后面的字母从小到大运行的

    unittest中运行用例的两种方式:

    1、如果不想生成报告,可以用右键Run Unittests in xx.py文件这种方式,如果想生成报告,不要用Run Unittests in xx.py文件这种方式运行,要点击pycharm上的Run按钮,再点击Run...,选择想要运行的文件就好
    2、如果右键只出现.py文件,直接运行就好

     

    xmlrunner这个模块产生的报告在Jenkins上面能看到,首先要pip install xmlrunner,然后import xmlrunner,output是指文件保存到哪里,.代表当前目录下,也可以output='XXX',目录名字随便起,如果要生成XML后缀的测试报告,用下面的代码,类的代码也要加上

    if __name__ == '__main__':
    suite = unittest.TestSuite() # 定义一个空的测试集合
    suite.addTest(unittest.makeSuite(My)) # 一次性加载一个类文件下所有测试用例到suite中去
    suite.addTest(unittest.makeSuite(My2)) # 一次性加载一个类文件下所有测试用例到suite中去
    runner2 = xmlrunner.XMLTestRunner(output = '.') # .代表当前目录下生成测试报告,也可以事先创建一个目录,在该目录下生成报告
    runner2.run(suite)

    在当前目录下生成xml文件,前面有类名和日期,供Jenkins使用

  • 相关阅读:
    windows编程:第一个windows程序
    百度地图API多个点聚合时,标注添加的标签label地图刷新就丢失的问题解决
    在WPF的WebBrowser控件中屏蔽脚本错误的提示
    使用SQL语句逐条更新每条记录
    通过 HDU 2048 来初步理解动态规划
    一个乱码问题
    2、设置配置文件
    1、搭建 maven 环境
    MyBatis 缓存机制
    关于 Mybatis 设置懒加载无效的问题
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8601657.html
Copyright © 2011-2022 走看看