Ho un singolo test che riceve i dati dal fornitore di dati. Vorrei che questo test fosse eseguito in parallelo con valori diversi dal fornitore di dati.TestNG parallelo Esecuzione con DataProvider
ho provato un approccio come:
public class IndependentTest
{
@Test(dataProvider = "dp1" ,threadPoolSize=3,invocationCount=1)
public void testMethod(int number)
{
Long id = Thread.currentThread().getId();
System.out.println("HELLO : " + id);
}
@DataProvider(name = "dp1",parallel=true)
public Object[][] dp1() {
return new Object[][] {
new Object[] { 1 },
new Object[] { 2 },
new Object[] { 3 },
new Object[] { 4 },
new Object[] { 5 },
new Object[] { 6 },
new Object[] { 7 },
new Object[] { 8 }
};
}
}
L'uscita ho ricevuto è:
CIAO: 10
CIAO: 12
CIAO: 17
CIAO: 11
CIAO: 16
CIAO: 14
CIAO: 13
CIAO: 15
generato 10 thread mentre ho specificato 5 delle dimensioni del lotto thread. Potrebbe dirci cosa deve essere aggiunto allo snippet sopra riportato per controllare le dimensioni del pool di thread del fornitore di dati.
Ti consigliamo di eseguire test in parallelo, non il fornitore. Nella tua build configura la modalità parallela a 'methods' e' threadCount' a 5. –
hi Ben, Ho un singolo test che dovrebbe essere eseguito più di 10k volte in base al numero di valori forniti dal fornitore di dati. Vorrei controllare il numero di thread generati quando parallel = true è impostato in dataprovider. Ho trovato questo argomento della riga di comando -dataproviderthreadcount per controllare il conteggio dei thread dataprovider. Tuttavia mi piacerebbe sapere come si potrebbe fare usando le annotazioni – sujith
Nel mio progetto [build] (https://github.com/ben-manes/caffeine/blob/master/caffeine/testing.gradle) configuro i test per eseguire in parallelo e, in totale, eseguire 1,8 M a causa di fornitori di dati su 827 metodi di test. Non penso che tu possa configurare questo dalle annotazioni e invece è una sua configurazione passata nel corridore. –