pytest genera un error html al ganar: UnicodeEncodeError: el códec 'gbk' no puede codificar el carácter '\xe6' en la posición

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:

Caracteres chinos ilegibles en la versión pytest-html 3.2.0

Guess you like

Origin blog.csdn.net/qq_39208536/article/details/131890902