En la actualizacion a Python 2.7, el módulo unittest ha modificado la forma que tiene de presentar los resultados. Antes te mostraba una única línea de texto por test, con la primera línea de las descripción del test, si lo hubiera, o el nombre de la clase y función del test, si no lo hubiera. Por ejemplo, el siguiente código:
import unittest
class A(unittest.TestCase):
def test_A(self):
pass
def test_B(self):
'''este es el test B.
'''
pass
Nos daba este limpio resultado:
test_A (__main__.A) ... ok
este es el test B. ... ok
Pero en la 2.7 han cambiado este comportamiento, y ahora imprime el nombre de la clase y el método del test siempre, y si hay una descripción, la incluye como segunda línea. Es decir, produce este resultado:
test_A (__main__.A) ... ok
test_B (__main__.A)
este es el test B. ... ok
Si preferimos la manera antigua, la forma más sencilla de conseguirlo, por ahora, es incluir el siguiente código al principio de tus test (visto en esta respuesta a una pregunta en Stack Overflow: how to change the test description of python (2.7) untitest).
from unittest.runner import TextTestResult
TextTestResult.getDescription = lambda _, test: str(test.shortDescription())
Un hack un poco feo. pero funciona. Es una tontería, pero me tenía de los nervios. Suelo (o intento) documentar casi todos mis tests, con lo que, para mi, el añadido era solo ruido.
Añadir un comentario