Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

160
Views
¿Cómo puedo integrar doctests con el descubrimiento de prueba de unittest?

Escribí un script de python para hacer todas mis pruebas automáticamente y generar un informe HTML. Descubrí el discover para pruebas unitarias el otro día, que me permite ejecutar todas las pruebas unitarias en un directorio determinado sin nombrarlas explícitamente, y realmente me gustaría poder hacer mis pruebas documentales de la misma manera, en lugar de tener que importar cada módulo explícitamente.

Encontré información sobre cómo hacer esto en https://docs.python.org/2/library/doctest.html pero realmente no la entendí. ¿Podría ayudarme con el uso de Discover con mis discover ?

El descubrimiento de pruebas de Python con doctests, cobertura y paralelismo está relacionado, pero aún no responde a mi pregunta.

módulo_cobertura

 import coverage import doctest import unittest import os # import test_module import my_module cov = coverage.Coverage() cov.start() # running doctest by explicity naming the module doctest.testmod(my_module) # running unittests by just specifying the folder to look into testLoad = unittest.TestLoader() testSuite = testLoad.discover(start_dir=os.getcwd()) runner = unittest.TextTestRunner() runner.run(testSuite) cov.stop() cov.save() cov.html_report() print "tests completed"

módulo_prueba

 import unittest import doctest from my_module import My_Class class My_Class_Tests(unittest.TestCase): def setUp(self): # setup variables def test_1(self): # test code # The bit that should load up the doctests? What's loader, tests, and ignore though? # Is this in the right place? def load_tests(loader, tests, ignore): tests.addTests(doctest.DocTestSuite(module_with_doctests)) return tests if __name__ == '__main__': unittest.main()
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Vamos a averiguar lo que está pasando allí

1) unittest.descubrimiento

No tiene idea de doctests ya que doctests es un marco diferente. Por lo tanto, no se supone que unittest descubra doctests de forma inmediata. Eso significa que tendrás que pegarlos a mano.

2) prueba

Es esencialmente un marco separado, aunque tiene algunas clases de pegado para convertir doctests en TestCases similares a unittest. https://docs.python.org/2.7/library/doctest.html#doctest.DocTestSuite

3) descubrir

No entendí a qué te refieres con discover , supongo que es

 python -m unittest discover

Si no es así y estás hablando de https://pypi.python.org/pypi/discover , entonces olvídalo: es un backport para versiones anteriores de python.

4) que hacer

o disperse una gran cantidad de load_tests en su código como se describe aquí https://docs.python.org/2.7/library/doctest.html#unittest-api o codifique un método para recopilar todos los módulos que tiene en un solo lugar y convertir en un DocTestSuite[s] https://docs.python.org/2.7/library/doctest.html#doctest.DocTestSuite

Pero, sinceramente, ninguno de los enfoques tiene sentido hoy en día, ya que se reduce a:

 $ py.test --doctest-modules

o

 $ nosetests --with-doctest

Por supuesto, estos marcos también brindan coverage y muchas campanas y silbatos y puede seguir apegado a unittest.TestCase, y ni siquiera necesitará crear un módulo de cobertura , por lo que profundizaría en uno de ellos en lugar de intentar encontrar con tu propia solución

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!