2012-10-10 8 views
5

ho scoperto che ci sono 2 modi di leggere i parametri di TestNG file di configurazione XML:Utilizzando l'annotazione @Parameter o ITestContext per leggere il file di configurazione di TestNG?

  1. uso @Parameter annotazione e definire i nomi dei parametri dopo l'annotazione

  2. uso ITestContext come argomento per la classe di test , DataProvider o Factory e utilizzare getCurrentXmlTest() e getParameter() per leggere il parametro.

Uno di questi modi è preferito per qualsiasi motivo sull'altro? e c'è un altro modo per farlo?

risposta

3

Penso che la differenza sia lo scopo. Se avessi bisogno dello stesso parametro su tutta la mia suite di test per es. variabili env, vorrei usarlo in un ascoltatore attuazione ITestListener o ISuiteListener (per l'ambito privato) e quindi utilizzare l'ITestContext/Suitecontext applicare il valore in tutte le mie prove sotto <test> o sotto <suite>

Tuttavia, se ho bisogno di molto specifico params per testcases specifici, quindi vorrei andare con annotazione @Parameter su quei particolari testcases.

Inoltre, @Parameter può solo prendere valori semplici, quindi potrebbero esserci casi in cui i test richiedono oggetti diversi (anziché stringhe) in base a qualche valore di parametro. In tal caso preferirei un dataprovider, leggendo il valore param (la seconda opzione, sebbene l'argomento per testclass che ritengo sia errato), creando oggetti e quindi lo invii ai test. (ad esempio, probabilmente il nome di un file di proprietà è un valore param, che viene letto e gli oggetti creati in base ai dati nel file delle proprietà e alimentati come testdata diversi dai test).

Problemi correlati