Pytest(2)使用和调用方法
Pytest执行用例规则
Pytest在 命令行 中支持多种方式来运行和选择测试用例
1.对某个目录下所有的用例
pytest
如果在 pytest 后不跟任何参数,pytest会在当前目录以及子目录下寻找测试文件,然后运行搜索到的测试代码;
如果提供一个或多个文件名、目录名,则pytest会逐个查找并运行所有测试,为了搜索到所有的测试代码,pytest会递归遍历每个目录以及子目录
2.对模块中进行测试
pytest test_mod.py
3.对文件夹进行测试
pytest testing
4.通过标记来进行测试
pytest -m slow
这种方式会运行所有通过装饰器 @pytest.mark.slow 进行装饰的测试用例。
5.通过关键字表达式来进行测试
pytest -k "MyClass and not method"
这种方式会执行文件名,类名以及函数名与给定的字符串表达式相匹配的测试用例。 上面的用例会执行 TestMyClass.test_something 但是不会执行 TestMyClass.test_method_simple
6.通过节点id来测试
每个被选中的测试用例都会被分配一个唯一的nodeid,它由模块文件名和以下说明符组成:参数化的类名、函数名和参数,用::分隔。
# 测试test_1.py文件下的TestClass类下的test_method方法 pytest test_1.py::TestClass::test_method # test1.py文件 class TestClass(object): def test_one(self): x = "hello" assert 'h' in x def test_method(self): # 测试的就是这个方法 x = "hello" assert 'h' in x
7.从包中运行测试
pytest --pyargs pkg.testing
这将会导入 pkg.testing 并使用其文件系统位置来查找和运行测试。
8.-q 简单打印,只打印测试用例的执行结果
pytest -q test_1.py
9.-s 详细打印
pytest -s test_1.py
10.-x 遇到错误时停止测试
pytest -x test_1.py
11. --maxfail=num,测试在第1(N)次测试失败后停止
pytest --maxfail=2 test_1.py
去期待陌生,去拥抱惊喜。