pytest notes

pytest 使用 F 标识测试失败(FAILED

pytest 使用 . 标识测试成功(PASSED)

 

标记测试函数

由于某种原因(如 test_func2 的功能尚未开发完成),我们只想执行指定的测试函数。在 pytest 中有几种方式可以解决:

第一种,显式指定函数名,通过 :: 标记

$ pytest tests/test-function/test_no_mark.py::test_func1

第二种,使用模糊匹配,使用 -k 选项标识:
pytest -k func1 tests/test-function/test_no_mark.py

 以上两种方法,第一种一次只能指定一个测试函数,当要进行批量测试时无能为力;第二种方法可以批量操作,但需要所有测试的函数名包含相同的模式,也不方便。

第三种,使用 pytest.mark 在函数上进行标记。

带标记的测试函数如:

1 # test_with_mark.py
2 
3 @pytest.mark.finished
4 def test_func1():
5     assert 1 == 1
6 
7 @pytest.mark.unfinished
8 def test_func2():
9     assert 1 != 1

一个函数可以打多个标记;多个函数也可以打相同的标记。

运行测试时使用 -m 选项可以加上逻辑,如:

$ pytest -m "finished and commit"

$ pytest -m "finished and not merged"

  

上一篇:sed在指定的行末尾添加指定的字符和删除指定的字符


下一篇:如何在JavaScript的实例对象中改写原型方法