Sono disponibili diverse funzioni a livello di modulo per controllare il funzionamenteo dei doctest.
module, name) |
Passate il module (o il nome del modulo in notazione puntata) contenete la docstring su cui eseguire il debug ed il name (all'interno del modulo) dell'oggetto con la docstring su cui eseguire il debug.
Gli esempi doctest vengono estratti (vedete la funzione testsource()), e scritti in un file temporaneo. Viene poi eseguito su quel file il debugger di Python, pdb. Nuovo nella versione 2.3.
) |
master
.
Per disporre di un controllo migliore di quanto non venga fornito da
testmod(), è possibile creare un'istanza di
Tester secondo politiche personalizzate, oppure si possono
eseguire i metodi di master
direttamente. Per i dettagli
vedete Tester.__doc__
.
module, name) |
Fornite il module (o il nome del modulo in notazione puntata) contenente i test da estrarre ed il name (all'interno del modulo) dell'oggetto con le docstring contenenti i test da estrarre.
Gli esempi doctest vengono restituiti come una stringa contenente codice Python. L'output previsto negli esempi viene convertito come commento Python. Nuovo nella versione 2.3.
[module]) |
La classe TestSuite restituita deve essere messa in esecuzione all'interno del framework unittest ed ha il compito di eseguire ogni doctest del modulo. Se uno dei doctest fallisce allora l'unità di test sintattica fallisce e viene sollevata un'eccezione DocTestTestFailure che mostra il nome del file contenente il test e (qualche volta in maniera approssimativa) il numero di riga.
L'argomento opzionale module specifica il modulo da testare. Può essere un oggetto modulo oppure il nome (possibilmente puntato) di un modulo. Se non specificato, viene utilizzato il modulo che chiama la funzione.
Esempio che mostra uno dei molti modi in cui il modulo unittest può usare TestSuite:
import unittest import doctest import my_module_with_doctests suite = doctest.DocTestSuite(my_module_with_doctests) runner = unittest.TextTestRunner() runner.run(suite)
Nuovo nella versione 2.3.
Questa funzione non cerca M.__test__
e le sue
tecniche di ricerca non sono esattamente identiche a
testmod() in ogni dettaglio. Le future versioni porteranno
i due metodi a convergere.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.