vscode visual studio linter debugger debug code python unit-testing logging nose

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.