赞
踩
案例:
test_pytest_duan.py
import pytest import allure def test_01(): pytest.assume (1 == 1) def test_02(): pytest.assume (1 == 2) def test_03(): pytest.assume (False) @pytest.mark.skip(reason='跳过这个功能') def test_04(): pytest.assume (2 == 3) @pytest.mark.xfail def test_05(): pytest.assume (3 == 4) @pytest.mark.xfail def test_06(): pytest.assume (4 == 4) if __name__ == "__main__": pytest.main()
运行结果:
Testing started at 15:06 ... D:\Python37\python.exe "D:\PyCharm 2019.1.3\helpers\pycharm\_jb_pytest_runner.py" --path E:/源码/testframework/excise/pytestDemo/test_pytest_duan.py Launching pytest with arguments E:/源码/testframework/excise/pytestDemo/test_pytest_duan.py in E:\源码\testframework\excise\pytestDemo ============================= test session starts ============================= platform win32 -- Python 3.7.3, pytest-6.2.5, py-1.10.0, pluggy-0.12.0 sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pypom-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0collected 6 items test_pytest_duan.py .F test_pytest_duan.py:8 (test_02) tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption F test_pytest_duan.py:12 (test_03) tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption s Skipped: 跳过这个功能 x tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:24: AssumptionFailure E >> pytest.assume (3 == 4) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption X [100%] ================================== FAILURES =================================== ___________________________________ test_02 ___________________________________ tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption ___________________________________ test_03 ___________________________________ tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption =========================== short test summary info =========================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: ======== 2 failed, 1 passed, 1 skipped, 1 xfailed, 1 xpassed in 0.32s ========= Process finished with exit code 0 Assertion failed 断言失败 Assertion failed 断言失败
报告汇总显示:
符号 | 描述 |
---|---|
. | 用例执行通过 |
F | Failure 用例执行不通过 |
E | error 测试异常 |
s | skip 跳过 |
x | xfail 预期失败并确实失败 |
X | xpass 预期失败但实际通过,不符合预期 |
======== 2 failed, 1 passed, 1 skipped, 1 xfailed, 1 xpassed in 0.32s =========
符号 | 描述 |
---|---|
2 failed | 2次失败 |
1 passed | 1通过 |
1 skipped | 1跳过 |
1 xfailed | 1 x失败 |
1 xpassed | 1 X通过 |
in 0.32s | 在0.32秒内 |
执行:
$ pytest --collect-only test_pytest_duan.py ============================= test session starts ============================= platform win32 -- Python 3.7.3, pytest-6.2.5, py-1.10.0, pluggy-0.12.0 sensitiveurl: .* rootdir: E:\Դ▒▒\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pypom-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collected 6 items <Package pytestDemo> <Module test_pytest_duan.py> <Function test_01> <Function test_02> <Function test_03> <Function test_04> <Function test_05> <Function test_06> ========================= 6 tests collected in 0.09s ==========================
$ pytest -q --collect-only test_pytest_duan.py
test_pytest_duan.py::test_01
test_pytest_duan.py::test_02
test_pytest_duan.py::test_03
test_pytest_duan.py::test_04
test_pytest_duan.py::test_05
test_pytest_duan.py::test_06
6 tests collected in 0.01s
$ pytest -q --collect-only test_pytest_duan.py | head -n -2
test_pytest_duan.py::test_01
test_pytest_duan.py::test_02
test_pytest_duan.py::test_03
test_pytest_duan.py::test_04
test_pytest_duan.py::test_05
test_pytest_duan.py::test_06
打印每个模块的测试数量
$ pytest -qq --collect-only test_pytest_duan.py
test_pytest_duan.py: 6
E:\源码\pytestDemo>pytest -v -m test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) cachedir: .pytest_cache metadata: {'Python': '3.7.3', 'Platform': 'Windows-10-10.0.18362-SP0', 'Packages': {'pytest': '6.2.5', 'py': '1.10.0', 'pluggy': '0.12.0'}, 'Plugins': {'allure-pyt est': '2.9.43', 'assume': '2.4.3', 'base-url': '1.4.2', 'datadir': '1.3.1', 'datafiles': '2.0', 'forked': '1.3.0', 'html': '3.1.1', 'metadata': '1.11.0', 'ordering ': '0.6', 'play': '1.4.0', 'pypom-navigation': '2.0.3', 'rerunfailures': '10.2', 'selenium': '2.0.1', 'splinter': '3.3.1', 'sugar': '0.9.4', 'variables': '1.9.0', 'xdist': '2.4.0'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_112', 'Base URL': '', 'Driver': None, 'Capabilities': {}} sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... ======================================================================== warnings summary ======================================================================== test_mark_zi_09.py:4 E:\源码\testframework\excise\pytestDemo\test_mark_zi_09.py:4: PytestUnknownMarkWarning: Unknown pytest.mark.webtest - is this a typo? You can register custom ma rks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.webtest test_mark_zi_09.py:9 E:\源码\testframework\excise\pytestDemo\test_mark_zi_09.py:9: PytestUnknownMarkWarning: Unknown pytest.mark.apptest - is this a typo? You can register custom ma rks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.apptest test_mark_zi_09.py:14 E:\源码\testframework\excise\pytestDemo\test_mark_zi_09.py:14: PytestUnknownMarkWarning: Unknown pytest.mark.android - is this a typo? You can register custom m arks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.android test_mark_zi_09.py:19 E:\源码\testframework\excise\pytestDemo\test_mark_zi_09.py:19: PytestUnknownMarkWarning: Unknown pytest.mark.ios - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.ios test_ordering_09.py:8 E:\源码\testframework\excise\pytestDemo\test_ordering_09.py:8: PytestUnknownMarkWarning: Unknown pytest.mark.last - is this a typo? You can register custom mark s to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.last -- Docs: https://docs.pytest.org/en/stable/warnings.html Results (1.34s): 77 deselected E:\源码\testframework\excise\pytestDemo>pytest -x test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... test_pytest_duan.py ✓ 17% █▋ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_02 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 33% ███▍ ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Results (0.43s): 1 passed 1 failed - test_pytest_duan.py:9 test_02
从共6条用例,执行了3条,当错误数量达到2的时候便停止了执行
E:\源码\pytestDemo>pytest --maxfail=2 test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... test_pytest_duan.py ✓ 17% █▋ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_02 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 33% ███▍ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_03 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 50% █████ ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 2 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Results (0.41s): 1 passed 2 failed - test_pytest_duan.py:9 test_02 - test_pytest_duan.py:13 test_03
命令 | 描述 |
---|---|
pytest --showlocals | 在回溯中显示局部变量 |
pytest -l | 显示局部变量(快捷方式) |
pytest --tb=auto | (默认)第一个和最后一个条目的长回溯,其他条目的短回溯 |
pytest --tb=long | 详细的信息追踪格式 |
pytest --tb=short | 短回溯格式 |
pytest --tb=line | 每次失败只有一行 |
pytest --tb=native | Python标准库格式 |
pytest --tb=no | 没有任何追溯 |
pytest --full-trace | 导致在错误上打印非常长的跟踪(比 --tb=long 还长) |
增加冗长
减少冗长
仅重新运行上次运行时失败的测试(如果没有失败,则全部重新运行)
运行所有测试,但首先运行最后的失败。这可能会重新安排测试,从而导致重复安装/拆卸夹具
E:\源码\testframework\excise\pytestDemo>pytest --ff --tb=no test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... run-last-failure: rerun previous 2 failures first test_pytest_duan.py ⨯ 17% █▋ test_pytest_duan.py ⨯ 33% ███▍ test_pytest_duan.py ⨯✓ 50% █████ test_pytest_duan.py ⨯✓s 67% █████ test_pytest_duan.py ⨯✓sx 83% █████ test_pytest_duan.py ⨯✓sxX 100% █████ █████ ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: Results (0.24s): 1 passed 1 xpassed 2 failed - test_pytest_duan.py:9 test_02 - test_pytest_duan.py:13 test_03 1 xfailed 1 skipped
-s等同于–capture=no
显示回溯中的本地变量(默认禁用)
显示N个最慢的设置/测试持续时间(所有设置/测试持续时间均为N=0)
E:\源码\testframework\excise\pytestDemo>pytest --durations=2 test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... test_pytest_duan.py ✓ 17% █▋ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_02 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 33% ███▍ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_03 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 50% █████ test_pytest_duan.py ⨯s 67% █████ test_pytest_duan.py ⨯sx 83% █████ test_pytest_duan.py ⨯sxX 100% █████ █████ ====================================================================== slowest 2 durations ======================================================================= 0.07s call test_pytest_duan.py::test_01 0.01s call test_pytest_duan.py::test_06 ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: Results (0.49s): 1 passed 1 xpassed 2 failed - test_pytest_duan.py:9 test_02 - test_pytest_duan.py:13 test_03 1 xfailed 1 skipped
将方法名打印出来
E:\源码\pytestDemo>pytest --durations=2 test_pytest_duan.py -vv Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) cachedir: .pytest_cache metadata: {'Python': '3.7.3', 'Platform': 'Windows-10-10.0.18362-SP0', 'Packages': {'pytest': '6.2.5', 'py': '1.10.0', 'pluggy': '0.12.0'}, 'Plugins': {'allure-pyt est': '2.9.43', 'assume': '2.4.3', 'base-url': '1.4.2', 'datadir': '1.3.1', 'datafiles': '2.0', 'forked': '1.3.0', 'html': '3.1.1', 'metadata': '1.11.0', 'ordering ': '0.6', 'play': '1.4.0', 'pypom-navigation': '2.0.3', 'rerunfailures': '10.2', 'selenium': '2.0.1', 'splinter': '3.3.1', 'sugar': '0.9.4', 'variables': '1.9.0', 'xdist': '2.4.0'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_112', 'Base URL': '', 'Driver': None, 'Capabilities': {}} sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... test_pytest_duan.py::test_01 ✓ 17% █▋ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_02 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py::test_02 ⨯ 33% ███▍ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_03 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py::test_03 ⨯ 50% █████ test_pytest_duan.py::test_04 s 67% █████ █▋ test_pytest_duan.py::test_05 x 83% █████ ███▍ test_pytest_duan.py::test_06 X 100% █████ █████ ====================================================================== slowest 2 durations ======================================================================= 0.07s call test_pytest_duan.py::test_01 0.01s call test_pytest_duan.py::test_02 ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: Results (0.48s): 1 passed 1 xpassed 2 failed - test_pytest_duan.py:9 test_02 - test_pytest_duan.py:13 test_03 1 xfailed 1 skipped
生成一个简短的概述报告,同时配合-r还可以使用
符号 | 描述 |
---|---|
f | failed |
E | error |
s | skipped |
x | xfailed |
X | xpassed |
p | passed |
P | passed with output |
a | all except pP |
A | all |
例如只想看失败的和跳过的测试,可以这样执行
E:\源码\pytestDemo>pytest -rfs test_pytest_duan.py Test session starts (platform: win32, Python 3.7.3, pytest 6.2.5, pytest-sugar 0.9.4) sensitiveurl: .* rootdir: E:\源码\testframework\excise\pytestDemo plugins: allure-pytest-2.9.43, assume-2.4.3, base-url-1.4.2, datadir-1.3.1, datafiles-2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, ordering-0.6, play-1.4.0, pyp om-navigation-2.0.3, rerunfailures-10.2, selenium-2.0.1, splinter-3.3.1, sugar-0.9.4, variables-1.9.0, xdist-2.4.0 collecting ... test_pytest_duan.py ✓ 17% █▋ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_02 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:10: AssumptionFailure E >> pytest.assume (1 == 2) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 33% ███▍ ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― test_03 ― ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = None def reraise(tp, value, tb=None): try: if value is None: value = tp() if value.__traceback__ is not tb: > raise value.with_traceback(tb) E pytest_assume.plugin.FailedAssumption: E 1 Failed Assumptions: E E test_pytest_duan.py:14: AssumptionFailure E >> pytest.assume (False) E AssertionError: assert False D:\Python37\lib\site-packages\six.py:692: FailedAssumption test_pytest_duan.py ⨯ 50% █████ test_pytest_duan.py ⨯s 67% █████ test_pytest_duan.py ⨯sx 83% █████ test_pytest_duan.py ⨯sxX 100% █████ █████ ==================================================================== short test summary info ===================================================================== FAILED test_pytest_duan.py::test_02 - pytest_assume.plugin.FailedAssumption: FAILED test_pytest_duan.py::test_03 - pytest_assume.plugin.FailedAssumption: SKIPPED [1] test_pytest_duan.py:17: 跳过这个功能 Results (0.50s): 1 passed 1 xpassed 2 failed - test_pytest_duan.py:9 test_02 - test_pytest_duan.py:13 test_03 1 xfailed 1 skipped
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。