5.3.8 Oggetti TestLoader

La classe TestLoader viene utilizzata per creare test suite da classi e moduli. Normalmente, non c'� bisogno di creare un'istanza di questa classe; il modulo unittest fornisce un'istanza che pu� essere condivisa tramite l'attributo di modulo defaultTestLoader. Usare una sotto classe o un'istanza permetterebbe la personalizzazione di alcune propriet� configurabili.

Gli oggetti TestLoader possiedono i seguenti metodi:

loadTestsFromTestCase( testCaseClass)
Restituisce una suite di tutti i test case contenuti nella classe TestCaseClass derivata da testCase.

loadTestsFromModule( module)
Restituisce una suite di tutti i test case contenuti nel modulo passato. Questo metodo cerca nel modulo module le classi derivate da TestCase e ne crea un'istanza per ogni metodo di test definito in quelle classi.

Mentre pu� essere conveniente usare una gerarchia di classi derivate Testcase per condividere funzioni di aiuto e fixture, risulta scomodo usare questo metodo su classi base che non devono essere istanziate direttamente. Farlo, comunque, pu� essere utile quando le fixture sono diverse e definite in sotto classi.

loadTestsFromName( name[, module])
Restituisce una suite di tutti i test case data una specifica stringa.

Il nome specificato name � un "nome puntato" che pu� riferirsi ad un modulo, ad una classe test case, ad un metodo di test all'interno di una classe test case o ad un oggetto richiamabile che restituisca un'istanza TestCase o TestSuite. Per esempio, se avete un modulo SampleTests che contiene una classe SmapleTestCase derivata da TestCase, con tre metodi di test (test_uno(), test_due() e test_tre()), lo specificatore 'SampleTests.SampleTestCase' far� in modo che questo metodo restituisca una suite che eseguir� tutti e tre i metodi di test. Usando lo specificatore 'SampleTests.SampleTestCase.test_due' il metodo restituir� una test suite che eseguir� solo il metodo di test test_due(). Lo specificatore pu� riferirsi a moduli o package che non sono stati importati; verranno importati automaticamente prima dell'esecuzione.

Il metodo, facoltativamente, risolve name relativamente al modulo dato.

loadTestsFromNames( names[, module])
Simile a loadTestsFromName(), ma riceve come parametro una sequenza di nomi invece che un singolo nome. Il valore restituito � una test suite che supporta tutti i test definiti per ciascun nome.

getTestCaseNames( testCaseClass)
Restituisce una sequenza ordinata dei nomi dei metodi trovati all'interno di testCaseClass.

I seguenti attributi di un TestLoader possono essere configurati tramite una sotto classe con l'assegnazione ad un'istanza:

testMethodPrefix
Una stringa che fornisce il prefisso dei nomi dei metodi che verranno interpretati come metodi di test. Il valore predefinito � 'test'.

sortTestMethodsUsing
Funzione da usare per confrontare i nomi dei metodi durante l'ordinamento con getTestCaseNames(). Il valore predefinito � la funzione built-in cmp(); pu� essere impostata a None per disabilitare l'ordinamento.

suiteClass
Un oggetto richiamabile che costruisce una test suite da una lista di test. Non � necessario alcun metodo sull'oggetto risultante. Il valore predefinito � la classe TestSuite.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.