首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pytest在测试名称上支持unicode吗?

pytest在测试名称上支持unicode吗?
EN

Stack Overflow用户
提问于 2017-07-04 10:24:15
回答 1查看 836关注 0票数 2

下面是我的测试示例(test_time.py):

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import pytest
from datetime import datetime, timedelta

testdata = [
    (datetime(2001, 12, 12), datetime(2001, 12, 11), timedelta(1)),
    (datetime(2001, 12, 11), datetime(2001, 12, 12), timedelta(-1)),
]

@pytest.mark.parametrize("a,b,expected", testdata, ids=[u"中文", u"English"])
def test_timedistance_v1(a, b, expected):
    diff = a - b
    assert diff != expected

下面是最热的输出:

代码语言:javascript
复制
============================================================================== FAILURES ==============================================================================
_________________________________________________________________ test_timedistance_v1[\u4e2d\u6587] _________________________________________________________________

a = datetime.datetime(2001, 12, 12, 0, 0), b = datetime.datetime(2001, 12, 11, 0, 0), expected = datetime.timedelta(1)

    @pytest.mark.parametrize("a,b,expected", testdata, ids=[u"中文", u"English"])
    def test_timedistance_v1(a, b, expected):
        diff = a - b
>       assert diff != expected
E       assert datetime.timedelta(1) != datetime.timedelta(1)

test_time.py:15: AssertionError
___________________________________________________________________ test_timedistance_v1[English] ____________________________________________________________________

a = datetime.datetime(2001, 12, 11, 0, 0), b = datetime.datetime(2001, 12, 12, 0, 0), expected = datetime.timedelta(-1)

    @pytest.mark.parametrize("a,b,expected", testdata, ids=[u"中文", u"English"])
    def test_timedistance_v1(a, b, expected):
        diff = a - b
>       assert diff != expected
E       assert datetime.timedelta(-1) != datetime.timedelta(-1)

test_time.py:15: AssertionError
====================================================================== 2 failed in 0.05 seconds ======================================================================

对于输出的第二行,测试名为"test_timedistance_v1\u4e2d\u6587“,我希望它是”test_timedistance_v1中文“,py.test支持它吗?(我的pytest版本是3.1.2,OS: macOS 10.12.5)

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 11:48:23

它不依赖于pytest,而是取决于您的计算机环境。

这里是测试(LC_ALL="en_US.UTF-8")的跟踪日志:

代码语言:javascript
复制
================================ test session starts ================================
platform linux -- Python 3.5.3, pytest-2.9.2, py-1.4.34, pluggy-0.3.1
rootdir: /home/..../tmp, inifile: 
collected 2 items 

pytest_chin.py FF

===================================== FAILURES ======================================
_____________________________ test_timedistance_v1[中文] ______________________________
...

对于LC_ALL="fr_FR.iso8859-1"

代码语言:javascript
复制
================================ test session starts ================================
platform linux -- Python 3.5.3, pytest-2.9.2, py-1.4.34, pluggy-0.3.1
rootdir: /home/gustavi/tmp, inifile: 
collected 2 items 

pytest_chin.py FF

===================================== FAILURES ======================================
\x1b[1m\x1b[31m_____________________________ test_timedistance_v1[\u4e2d\u6587] ______________________________\x1b[0m
...

Here是一个有用的链接,可以在OS上设置您的地区。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44903389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档