Possible en double:
Running junit tests in parallel?Comment faire exécuter les cas de test JUnit en parallèle?
J'ai trouvé les cas de test à l'intérieur jUnit sont exécutées dans l'ordre, comment les faire exécuter en parallèle?
Possible en double:
Running junit tests in parallel?Comment faire exécuter les cas de test JUnit en parallèle?
J'ai trouvé les cas de test à l'intérieur jUnit sont exécutées dans l'ordre, comment les faire exécuter en parallèle?
junit4 fournit une fonctionnalité parallèle à l'aide ParallelComputer:
public class ParallelComputerTest {
@Test
public void test() {
Class[] cls={ParallelTest1.class,ParallelTest2.class };
//Parallel among classes
JUnitCore.runClasses(ParallelComputer.classes(), cls);
//Parallel among methods in a class
JUnitCore.runClasses(ParallelComputer.methods(), cls);
//Parallel all methods in all classes
JUnitCore.runClasses(new ParallelComputer(true, true), cls);
}
public static class ParallelTest1 {
@Test public void a(){}
@Test public void b(){}
}
public static class ParallelTest2 {
@Test public void a(){}
@Test public void b(){}
}
}
Voici quelques exemples de code. Cela fonctionne vraiment bien pour moi. ExecutorService.
public class TestCases {
static ExecutorService exe ;
public static void main(String[] args) throws Throwable {
test1() ;
test2() ;
test3() ;
}
public static void test1() {
exe = Executors.newCachedThreadPool() ;
for (int i = 0 ; i < 10 ; i++) {
Test1 test1 = new Test1() ;
exe.execute(test1) ;
}
exe.shutdown() ;
while(!exe.isShutDown()) {
}
}
//same for test2 and test3
}
public class Test1 implements Runnable {
public Test1() {
}
@Test
public myTest throws Throwable {
}
}
Salut, Ceci est vraiment utile. mais, capable d'exécuter 4 classes seulement en parallèle à la fois même si j'ai plus de classes dans le tableau. Y a-t-il une limitation sur le nombre de classes fonctionnant en parallèle? – Santoshsarma
Que se passe-t-il si je ne veux pas lister chaque classe de test (cela semble être une énorme douleur)? Y a-t-il un moyen de le faire automatiquement et de le faire fonctionner en parallèle? –
Utile mais notez que les exceptions des tests ne sont pas automatiquement levées. Vous devez vérifier le résultat de 'runClasses'. –