visual - vscode python pep
Hacer que el corredor de pruebas de la nariz muestre el registro incluso si las pruebas pasan (1)
nosetests --help
no hacen que esto sea obvio EN TODO, pero la respuesta es la bandera --debug
. Este indicador toma como argumento el nombre del registrador del que desea recibir mensajes.
Aquí hay una versión ligeramente modificada del código del OP:
# test.py
import unittest
import logging
class Test(unittest.TestCase):
def test_pass(self):
logging.getLogger(''hide.this'').info(''HIDE THIS'')
logging.getLogger(''show.this'').info(''TEST PASS'')
self.assertEqual(True, True)
def test_fail(self):
logging.getLogger(''hide.this'').info(''HIDE THIS'')
logging.getLogger(''show.this'').info(''TEST FAIL'')
self.assertEqual(True, False)
Para este ejemplo, nosetests test.py --debug=show.this
debería hacer el truco.
Estoy usando nosetests test.py
para ejecutar pruebas unitarias:
import unittest
import logging
class Test(unittest.TestCase):
def test_pass(self):
logging.getLogger(''do_not_want'').info(''HIDE THIS'')
logging.getLogger(''test'').info(''TEST PASS'')
self.assertEqual(True, True)
def test_fail(self):
logging.getLogger(''do_not_want'').info(''HIDE THIS'')
logging.getLogger(''test'').info(''TEST FAIL'')
self.assertEqual(True, False)
Cuando la prueba falla, imprime toda la información de registro. Puedo usar --logging-filter
para archivar solo algunos registradores:
nosetests test.py --verbosity=2 --logging-filter=test
test_fail (test.Test) ... FAIL
test_pass (test.Test) ... ok
======================================================================
FAIL: test_fail (test.Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File ".../test.py", line 14, in test_fail
self.assertEqual(True, False)
AssertionError: True != False
-------------------- >> begin captured logging << --------------------
test: INFO: TEST FAIL
--------------------- >> end captured logging << ---------------------
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (failures=1)
Sin embargo, no muestra nada cuando pasan las pruebas.
Me gustaría ver la salida de un registrador específico cuando pasan las pruebas. Descubrí que puedo usar -s
para mostrar todo el texto stdout / stderr que no es exactamente lo que necesito, imprime todo. Intenté jugar con varias configuraciones, como --nologcapture
, --nocapture
o --logging-filter
pero no pude obtener el efecto deseado.