慢慢学习使用unittest单元测试框架
慢慢学习使用unittest单元测试框架
我们现在开始进入主题
建立一个小dome
使用unittest首先要import unittest
下面直接粘贴代码,具体注释也很详细
进行一个小小的计算例子:
import unittest
def jisuan(a,b):
s=a+b
return s
class ceshi(unittest.TestCase):
def setUp(self):
pass
def test_1(self):#测试用例必须以test开头,都这不会被读取
self.assertEqual(1, jisuan(3, 2))
print("1")
def test_2(self):
self.assertEqual(5, jisuan(3, 2))
print("2")
def test_3(self):
self.assertEqual(2, jisuan(0, 2))
print("3")
def tearDown(self):
pass
if __name__ == '__main__':
unittest.main()
setUp,tearDown 是做执行初始化用的。
结果:----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
因为 self.assertEqual(1, jisuan(3, 2))这个出现问题啦,认真阅读代码
测试用例的执行顺序,上代码:
import unittest
from if__main import ceshi #导入含有测试用例的那个方法
if __name__ == '__main__':
suite = unittest.TestSuite()
tests = [ceshi("test_0"), ceshi("test_3"), ceshi("test_2")]#导入的测试方法的类,定义用例的执行顺序
suite.addTests(tests)
runner = unittest.TextTestRunner(verbosity=2)#verbosity 默认是 1,如果设为 0不输出,2输出详情
runner.run(suite)
如果你想要使用txt保存你的执行结果,下列代码:
import unittest
from if__main import ceshi
if __name__ == '__main__':
suite = unittest.TestSuite()
tests = [ceshi("test_0"), ceshi("test_3"), ceshi("test_2")]
suite.addTests(tests)
with open('执行结果.txt', 'a+') as f:
runner = unittest.TextTestRunner(stream=f,verbosity=2) #关键在于stream=f
runner.run(suite)
多条用例进行:
import unittest
from if__main import ceshi
if __name__ == '__main__':
suite = unittest.TestSuite()
for i in range(1,4): #循环加入tests队列
tests = [ceshi("test_"+str(i))] #参数化测试用例的名称
suite.addTests(tests)
with open('执行结果.txt', 'a+') as f:
runner = unittest.TextTestRunner(stream=f,verbosity=2)
runner.run(suite)