unittest--前置和后置

简介: unittest--前置和后置

前戏


先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File->setting->Tools->Python Intergrated Tools->Default test runner->py.test选择后如果显示未安装,请先安装py.test

import unittest
class Test_case(unittest.TestCase):
    def test01(self):
        print('第一个测试用例')
    def test02(self):
        print('第二个测试用例')
if __name__ == '__main__':
    unittest.main()

结果:

..

第一个测试用例


第二个测试用例

类要继承unittest.TestCase,下面的函数名要以test开头才会执行,.(点)表示成功了多少条用例,F表示失败的用例,E表示程序本身有问题

import unittest
class Test_case(unittest.TestCase):
    def setUp(self):
        print('我是前置条件')
    def tearDown(self):
        print('我是后置条件')
    def test01(self):
        print('第一个测试用例')
    def test02(self):
        print('第二个测试用例')
if __name__ == '__main__':
    unittest.main()

结果:

..
我是前置条件
第一个测试用例
我是后置条件
我是前置条件
第二个测试用例
我是后置条件

setup在每条用例执行前执行,teatdown在每条用例执行完之后执行

import unittest
class Test_case(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print('我是所有用例的前置')
    @classmethod
    def tearDownClass(cls):
        print('我是所有用例的后置')
    def setUp(self):
        print('我是前置条件')
    def tearDown(self):
        print('我是后置条件')
    def test01(self):
        print('第一个测试用例')
    def test02(self):
        print('第二个测试用例')
if __name__ == '__main__':
    unittest.main()

结果:

我是所有用例的前置
我是前置条件
第一个测试用例
我是后置条件
我是前置条件
第二个测试用例
我是后置条件
我是所有用例的后置

setUpClass(cls)所有用例执行之前执行,要加@classmethod

tearDownClass(cls)所有用例执行之后执行

import unittest
class Test_case(unittest.TestCase):
    def setUp(self):
        print('我是前置条件')
    def tearDown(self):
        print('我是后置条件')
    def test01(self):
        '''第一个测试'''
        print('test01')
    def test02(self):
        '''第二个测试'''
        print('test02')
if __name__ == '__main__':
    unittest.main(verbosity=2)  # 可以加参数

结果:

我是前置条件
test01 (__main__.Test_case)
test01
我是后置条件
第一个测试 ... ok
我是前置条件
test02 (__main__.Test_case)
test02
第二个测试 ... ok
我是后置条件

verbosity有三个值

0代表得到执行的测试总数和全局结果

1代表得到成功的显示.失败的显示F,错误的显示E

2可以得到详细的信息,可以打印出注释信息,在注释后面显示成功失败的信息

 


相关文章
|
Java Spring 容器
|
3月前
sqli注入前置知识
sqli注入前置知识
13 0
|
4月前
|
Java 测试技术 数据处理
JMeter前置处理器-Beanshell前置处理器详解
JMeter的Beanshell前置处理器允许用Java-like语法执行测试前的自定义逻辑,如参数化和数据处理。要添加它,右键点击HTTP请求,选择“添加”->“前置处理器”->“Beanshell前置处理器”。内置变量如`vars`, `ctx`, `log`和`props`提供与JMeter变量、上下文、日志和属性的交互。例如,`vars.get("key")`用于获取变量,`log.info()`用于记录日志。使用这些工具,测试者能增强性能测试的复杂性和准确性。
82 3
|
4月前
|
算法 程序员 C语言
【C++ 运算符重载】深入理解C++迭代器中的前置与后置++操作符
【C++ 运算符重载】深入理解C++迭代器中的前置与后置++操作符
166 0
扒扒javascipt前置++跟后置++的那些事
扒扒javascipt前置++跟后置++的那些事
|
9月前
前置++与后置++的区别
前置++与后置++的区别
56 0
|
测试技术
unittest--断言
unittest--断言
|
存储 Java 编译器
一文打通:从字节码指令的角度解读前置后置自增自减(加加++减减--)
一文打通:从字节码指令的角度解读前置后置自增自减(加加++减减--)
54 0
|
C语言
关于前置++和后置++你真的掌握了吗?
关于C语言前置++和后置++的区别
143 0