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.