nose2 这个自动化工具让我写代码快了一倍

本贴最后更新于 1353 天前,其中的信息可能已经渤澥桑田

如果你学过 python 进行自动化测试,你一定使用过 unittest。今天我们要讲的 nose2 是一个高级版本的 unittest。他比 unittest 更容易理解,用起来也更加方便一些。


一,快速开始

nose2 在 unittest 的基础上开发的,所以如果你之前是用 unittest 做测试,但是有想使用 nose2 的新特性,你可以在不改变原有代码的情况下直接使用 nose2。

import unittest
import nose2

class TestAdd(unittest.TestCase):
    def test_add(self):
        self.assertEqual(1+1, 3)

if __name__ == '__main__':
    # 只需要替换这一行
    # unittest.main()
    nose2.main()

二,安装

nose2 是第三方库,需要自己安装,直接在 cmd 运行 pip 指令安装:

pip install nose2

三,运行测试用例

在快速开始当中,我们使用了在 python 代码中用 nose2.main() 的方式去运行测试用例,这样是完全 OK 的。

还有另外一种运行方式:直接在命令行通过 nose2 命令运行。他会在python文件中查找名称以 test 开头的测试文件,并运行它发现的每个以 test 开头的测试函数名称。比如说我的项目当中有 test_add.py, test_minus.py 这些文件,如果我想运行所有的测试用例,只需要在当前文件下输入 cmd 命令,他就会自动去查找所有的测试用例,然后去执行:

nose2 

1,运行指定文件夹下的测试用例

nose2 -s 文件夹名称

我把登录相关的用例都放到一个叫 login_case 的文件夹当中,当我执行 nose2 -s login_case 的时候,其他的用例是不会执行的, nose2 只会去找 login_case 文件夹下面的用例。
image.png


2,运行指定的测试用例

nose2 login_case.test_nose2_dir.test_login

在这个例子当中:

每一个层级之间,用 . 号隔开。

如果想测试 test_nose2_dir.py 文件下的所有用例:

nose2 login_case.test_nose2_dir

如果想测试 login_case 文件夹下的所有用例:

nose2 login_case

四,测试用例的命名

为什么 nose2 可以自动查找用例并且执行呢?是因为他在内部制定了规则,然后根据规则去判定。

比如首先他规定,你所有的测试用例文件名称应该以 test 开头,如果你不这么做,那这个文件就不是测试用例文件。以下的文件名都会被判定为测试用例文件:

test.py
test_add.py
testRegister.py

而这一些不会被判定为测试用例文件,从而被忽略:

add_test.py
a_test.py
register_test_file.py

五,总结

本篇我们介绍了 nose2 的简单入门:

1 操作
yuze 在 2020-08-06 17:45:42 更新了该帖
1 回帖
请输入回帖内容 ...
  • yuze