前戏 先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File-setting-Tools-Python Intergrated Tools-Default test runner-py.test选择后如果显
前戏
先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File->setting->Tools->Python Intergrated Tools->Default test runner->py.test选择后如果显示未安装,请先安装py.test
import unittestclass Test_case(unittest.TestCase):
def test01(self):
print('第一个测试用例')
def test02(self):
print('第二个测试用例')
if __name__ == '__main__':
unittest.main()
结果:
..第一个测试用例
第二个测试用例
类要继承unittest.TestCase,下面的函数名要以test开头才会执行,.(点)表示成功了多少条用例,F表示失败的用例,E表示程序本身有问题
import unittestclass 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 unittestclass 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)所有用例执行之后执行
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可以得到详细的信息,可以打印出注释信息,在注释后面显示成功失败的信息