1. Antecedentes
Al ganar, ejecute el informe de prueba generado pytest cases --html=report.html --self-contained-html
Error:
UnicodeEncodeError: el códec 'gbk' no puede codificar el carácter '\xe6' en la posición 13491: secuencia multibyte ilegal。
Esto puede deberse a la versión 3.2.0 de pytest-html y es necesario modificar el código fuente.
Creo que podemos probar con otra versión de pytest-html, o podemos modificar el código fuente.
En segundo lugar, la solución:
El código fuente de pytest necesita ser modificado.
1,
Busque el siguiente código en lib\site-packages\pytest_html\result.py en el directorio [Nota: la versión anterior a la 3.2.0 está en el archivo plugin.py]:
class TestResult:
def __init__(self, outcome, report, logfile, config):
self.test_id = report.nodeid.encode("utf-8").decode("unicode_escape")
Modifíquelo a:
class TestResult:
def __init__(self, outcome, report, logfile, config):
# 白月黑羽修改方法,解决乱码问题
# self.test_id = report.nodeid.encode("utf-8").decode("unicode_escape")
self.test_id = report.nodeid
2,
lib\site-packages\pytest_html\html_report.py, busque el siguiente código:
head = html.head(html.meta(charset="utf-8"), html.title(self.title), html_css)
Codifica los caracteres del meta anterior como GB2312
Direccion original: