功能测试步骤

1.写用例 TestCase。
2.执行用例 1:TestSuite 存储用例 2:TestLoader 找用例,加载用例,存到1的TestSuite
3.对比实际结果,期望结果 判定用例是否通过:断言 Assert
4.出具测试报告 TextTestRunner

unittest使用步骤

1.写测试用例:创建类,类继承unittest.TestCase
(1)一个用例就是一个函数,不能传参,只有self关键字。
(2)所有的用例,所有的函数都是以test开头,如test_abc
(3)默认执行测试用例的顺序,是按照函数名称的ASCII编码进行执行的。

import unittest

from testUnittest.mathMethod import MathMethod

"""
1.继承TestCase类
"""


class TestMethod(unittest.TestCase):
    """
    每个方法是一个测试用例,方法不能有除了self的参数
    """

    def test_add_two_position(self):
        try:
            self.assertEqual(MathMethod().add(1, 4), 5)
        except AssertionError as e:
            print("不等于4")
            raise e

    def test_add_two_negative(self):
        try:
             self.assertEqual(MathMethod().add(-1, -2), -3)
        except AssertionError as e:
            print("-3不等于-4")
            raise e

    def test_add_two_negative1(self):
        try:
             self.assertEqual(MathMethod().add(-1, -2), -3)
        except AssertionError as e:
            print("-3不等于-4")
            raise e


if __name__ == '__main__':
    unittest.main()

2.执行测试用例
(1)直接执行的,在判断语句main中执行语句unittest.main() # 默认执行当前文件的用例
(2)使用测试套件执行。可执行用例级别,或者套件级别的用例。

import unittest

from testUnittest.testMathMethod import TestMethod

suite = unittest.TestSuite()
# 方法一:指定特定的测试用例执行
# addTest中的参数,是实例化TestCase,实例化过程中的参数是指定的执行的用例
suite.addTest(TestMethod("test_add_two_position"))
suite.addTest(TestMethod("test_add_two_position"))
runner = unittest.TextTestRunner()
runner.run(suite)
import unittest

from testUnittest import testMathMethod
from testUnittest.testMathMethod import TestMethod

suite = unittest.TestSuite()
# 方法一:指定特定的测试用例执行
# addTest中的参数,是实例化TestCase,实例化过程中的参数是指定的执行的用例
# suite.addTest(TestMethod("test_add_two_position"))
# suite.addTest(TestMethod("test_add_two_position"))
#
# runner = unittest.TextTestRunner()
# runner.run(suite)

# 方法二:使用Loader加载器先寻找用例,再执行用例
loader = unittest.TestLoader()
# 参数是测试用例集的py文件
module = loader.loadTestsFromModule(testMathMethod)
suite.addTest(module)


runner = unittest.TextTestRunner()
runner.run(suite)
# 方法三,通过选择路径,匹配要执行的py文件
discover = unittest.defaultTestLoader.discover("./","test*.py")
unittest.TextTestRunner().run(discover)

3.断言
常用断言方法是:self.assert*()
4.出具测试报告

# 使用with,当使用资源时,可以自动关闭文件操作。result.txt保存在当前的文件下
with open("result.txt","w+",encoding="utf-8") as file:
    # verbosity 值越高,越详细 值只有0,1,2
    runner = unittest.TextTestRunner(stream=file, descriptions=True, verbosity=2)
    runner.run(suite)

前置和后置操作&&常用的注解

setUp/tearDown 是在执行方法时要执行的操作
setUpClass/tearDownClass 是在执行类时要执行的操作,需要注意的是:使用该方法时,参数为cls,并且要添加注解@classmethod

跳过用例:添加注解@unittest.skip,可以给这个跳过用例添加条件,@unittest.skipIf(1+1==2,"跳过给该用例")

posted on 2021-04-05 21:58  zazeh  阅读(69)  评论(0)    收藏  举报