nose2 这个自动化工具让我写代码快了一倍 (二)
而这一篇则是介绍 nose2 的一些高级特性。 测试用例方法的编写与unittest不同的是,nose2 的测试用例并不一定要以类的形式存在,也可以使用函数。任何函数和类,只要名称匹配一定的条件(例如,以test开头或以test结...
而这一篇则是介绍 nose2 的一些高级特性。
与unittest不同的是,nose2 的测试用例并不一定要以类的形式存在,也可以使用函数。任何函数和类,只要名称匹配一定的条件(例如,以test开头或以test结尾等),都会被自动识别为测试用例。
类似于 unittest 当中的 ddt 模块,不过比 ddt 模块使用起来简洁一些。在测试过程当中,通常会有多组测试用例数据,多组测试用例会共用一个测试用例的方法,从而实现数据驱动。在 nose2 当中你可以这样使用:
1, @params(*test_data) 会接收外部传进来的多组测试数据;
2,test_add(data) 当中的 data 每次取出一组数据运行,所以,data 其实就是 {"data": (1, 2), "expected": 3} 这样的一组数据。
3,这里因为有 3 组数据,所以运行的时候会有 3 个测试用例。
测试夹具是为了给测试用例准备前置条件和后置条件。
-
@with_setup(before_test) 表示在测试用例执行之前要执行的前置条件 -
@with_teardown(after_test) 表示在测试用例执行之后的后置条件 -
before_test 和 after_test 是自己定义的函数