如何在pytest的pytest.mark.parametrize中显示有效的汉字?

How to display valid Chinese Characters in pytest's pytest.mark.parametrize?

import pytest
import nlu

@pytest.mark.parametrize("text", ["我喜欢美妆里面的碧唇果酸面膜!"])
def test_tokenizer_sentence(text):
tokens = nlu.nlp(text)
print (tokens)
assert len(tokens['tokens']['words']) == 9

从上面的 pytest 单元,如果我 运行 它的输出如下:

test_tokenizer.py::test_tokenizer_sentence[\u6211\u559c\u6b22\u7f8e\u5986\u91cc\u9762\u7684\u78a7\u5507\u679c\u9178\u9762\u819c!] PASSED [100%]{'text': '我喜欢美妆里面的碧唇果酸面膜!', 'tokens': {'words': ['我', '喜欢', '美妆', '里面', '的', '碧唇', '果酸', '面膜', '!']}}

有没有pytest.mark.parametrize的参数可以让unicode显示为有效的汉字?

\u6211\u559c\u6b22\u7f8e\u5986\u91cc\u9762\u7684\u78a7\u5507\u679c\u9178\u9762\u819c!

我在 PyCharm 中使用 pytest。

显示非 ascii 测试 ID 一直是 pytest 代码库中特别棘手的部分

在撰写本文时,它们默认处于关闭状态,但您可以通过 pytest.ini:

中的实验性标志启用它们
[pytest]
disable_test_id_escaping_and_forfeit_all_rights_to_community_support = true
$ pytest t.py  -v
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0 -- /tmp/y/venv/bin/python
cachedir: .pytest_cache
rootdir: /tmp/y, configfile: pytest.ini
collected 1 item                                                               

t.py::test_tokenizer_sentence[我喜欢美妆里面的碧唇果酸面膜!] PASSED      [100%]

============================== 1 passed in 0.00s ===============================

免责声明:我是 pytest 核心开发者之一