Pytest:如何只显示一次失败的断言,而不是两次

问题描述

我通过 PyCharm 运行 pytest,并执行一个测试:

/home/guettli/projects/lala-env/bin/python /snap/pycharm-professional/230/plugins/python/helpers/pycharm/_jb_pytest_runner.py --target test_models.py::test_address_is_complete
Testing started at 11:53 ...
Launching pytest with arguments test_models.py::test_address_is_complete in /home/guettli/projects/lala-env/src/lala/lala/tests

============================= test session starts ==============================
platform linux -- Python 3.8.5,pytest-6.2.0,py-1.10.0,pluggy-0.13.1 -- /home/guettli/projects/lala-env/bin/python
cachedir: .pytest_cache
django: settings: mysite.settings (from ini)
rootdir: /home/guettli/projects/lala-env/src/lala,configfile: pytest.ini
plugins: django-4.1.0
collecting ... collected 1 item

test_models.py::test_address_is_complete Creating test database for alias 'default' ('test_lala')...
Operations to perform:
  Synchronize unmigrated apps: allauth,colorfield,debug_toolbar,google,messages,staticfiles
  Apply all migrations: account,admin,auth,contenttypes,lala,sessions,sites,socialaccount
Synchronizing apps without migrations:
  Creating tables...
    Running deferred sql...
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying account.0001_initial... OK
  Applying account.0002_email_max_length... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying lala.0001_initial... OK
  Applying lala.0002_offer_price... OK
  Applying lala.0003_order_amount... OK
  Applying lala.0004_auto_20201215_2043... OK
  Applying lala.0005_auto_20201229_2148... OK
  Applying lala.0006_auto_20201229_2150... OK
  Applying lala.0007_auto_20210117_1632... OK
  Applying lala.0008_auto_20210117_1632... OK
  Applying lala.0009_add_address... OK
  Applying lala.0010_auto_20210117_2102... OK
  Applying lala.0011_auto_20210119_1909... OK
  Applying lala.0012_allergen_short... OK
  Applying lala.0013_auto_20210119_1914... OK
  Applying lala.0014_auto_20210120_0734... OK
  Applying lala.0015_auto_20210120_0752... OK
  Applying lala.0016_auto_20210120_1923... OK
  Applying lala.0017_allergenuser... OK
  Applying lala.0018_address_place... OK
  Applying lala.0019_auto_20210126_2027... OK
  Applying lala.0020_auto_20210126_2027... OK
  Applying lala.0021_recurringoffer_days... OK
  Applying lala.0022_auto_20210126_2129... OK
  Applying lala.0023_auto_20210201_2056... OK
  Applying lala.0024_globalconfig_navbar_title... OK
  Applying lala.0025_activationstate... OK
  Applying sessions.0001_initial... OK
  Applying sites.0001_initial... OK
  Applying sites.0002_alter_domain_unique... OK
  Applying socialaccount.0001_initial... OK
  Applying socialaccount.0002_token_max_lengths... OK
  Applying socialaccount.0003_extra_data_default_dict... OK
Destroying test database for alias 'default' ('test_lala')...
Failed
lala/tests/test_models.py:18 (test_address_is_complete)
user = <User: Dr. Foo>

    def test_address_is_complete(user):
        address = user.address
>       assert address.is_complete
E       assert False
E        +  where False = <Address: Address object (1)>.is_complete

test_models.py:21: AssertionError


Assertion Failed


Assertion Failed


=================================== FAILURES ===================================
___________________________ test_address_is_complete ___________________________

user = <User: Dr. Foo>

    def test_address_is_complete(user):
        address = user.address
>       assert address.is_complete
E       assert False
E        +  where False = <Address: Address object (1)>.is_complete

test_models.py:21: AssertionError
=========================== short test summary info ============================
Failed test_models.py::test_address_is_complete - assert False
============================== 1 Failed in 2.88s ===============================

Process finished with exit code 1


Assertion Failed

Assertion Failed

为什么异常会显示两次?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)