📜  单元测试框架-框架

📅  最后修改于: 2020-12-03 05:26:35             🧑  作者: Mango


“ unittest”支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中以及使测试脱离报告框架。

unittest模块提供的类可轻松支持一组测试的这些质量。

为此,unittest支持以下重要概念-

  • 测试装置-这表示执行一个或多个测试所需的准备工作,以及任何相关的清理操作。例如,这可能涉及创建临时或代理数据库,目录或启动服务器进程。

  • 测试用例-这是最小的测试单元。这将检查对一组特定输入的特定响应。 unittest提供了一个基类TestCase ,可用于创建新的测试用例。

  • 测试套件-这是测试用例,测试套件或两者的集合。这用于汇总应一起执行的测试。测试套件由TestSuite类实现。

  • 测试运行程序-这是协调测试执行并向用户提供结果的组件。跑步者可以使用图形界面,文本界面,或返回特殊值以指示执行测试的结果。

创建单元测试

编写简单的单元测试涉及以下步骤-

步骤1-将unittest模块导入程序中。

步骤2-定义要测试的函数。在以下示例中,将对add()函数进行测试。

步骤3-通过子类化unittest.TestCase创建一个测试用例。

步骤4-将测试定义为类中的方法。方法名称必须以“ test”开头。

步骤5-每个测试调用TestCase类的assert函数。断言有很多类型。以下示例调用assertEquals()函数。

第6步-assertEquals()函数将add()函数与arg2参数进行比较,如果比较失败,则抛出assertionError。

步骤7-最后,从unittest模块调用main()方法。

import unittest
def add(x,y):
   return x + y
   
class SimpleTest(unittest.TestCase):
   def testadd1(self):
      self.assertEquals(add(4,5),9)
      
if __name__ == '__main__':
   unittest.main()

步骤8-从命令行运行以上脚本。

C:\Python27>python SimpleTest.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

步骤9-以下三个可能是测试的可能结果-

Sr.No Message & Description
1

OK

The test passes. ‘A’ is displayed on console.

2

FAIL

The test does not pass, and raises an AssertionError exception. ‘F’ is displayed on console.

3

ERROR

The test raises an exception other than AssertionError. ‘E’ is displayed on console.

这些结果分别在控制台上以“。”,“ F”和“ E”显示。

命令行界面

可以从命令行使用unittest模块来运行单个或多个测试。

python -m unittest test1
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

unittest支持以下命令行选项。有关所有命令行选项的列表,请使用以下命令-

Python –m unittest -h
Sr.No Option & Description
1

-h, –help

Show this message

2

v, –verbose

Verbose output

3

-q, –quiet

Minimal output

4

-f, –failfast

Stop on first failure

5

-c, –catch

Catch control-C and display results

6

-b, –buffer

Buffer stdout and stderr during test runs