Pytest使用parametrize失败用例打印中文
时间: 2023-12-12 18:01:54 浏览: 98
Pytest参数化parametrize使用代码实例
在 Pytest 中使用 parametrize 参数化测试时,如果参数值中含有中文字符,可以使用 Unicode 编码的方式来避免打印失败用例中文乱码的问题。
例如,我们有一个测试用例如下所示:
```
@pytest.mark.parametrize("input_str, expected_output", [("你好", "hello"), ("世界", "world")])
def test_translate(input_str, expected_output):
assert translate(input_str) == expected_output
```
如果运行测试用例时,出现了失败的情况,pytest 将会打印失败用例的详细信息,包括 input_str 参数的值。如果 input_str 中含有中文字符,则可能出现乱码的情况。
为了避免这种情况,我们可以将中文字符转换为 Unicode 编码,例如:
```
@pytest.mark.parametrize("input_str, expected_output", [(u"\u4f60\u597d", "hello"), (u"\u4e16\u754c", "world")])
def test_translate(input_str, expected_output):
assert translate(input_str) == expected_output
```
这样,即使测试用例失败,pytest 也能正确地打印中文字符。
阅读全文