2012-11-22 16 views
9

Zastanawiam się, czy możliwe jest równoległe uruchomienie testów JUnit podczas definiowania sparametryzowanych testów. Chodzi o to, aby móc je uruchomić tak samo jak zwykłe testy JUnit w Eclipse.Uruchamianie sparametryzowanych testów JUnit równolegle w Eclipse

Mój obecny kod jest coś podobnego do:

@RunWith(Parameterized.class) 
public class JUnitDivideClassTests { 

    @Parameters 
    public static Collection<Object[]> data() { 

     return Arrays.asList(new Object[][] { { 12, 3, 4 }, { 12, 2, 6}, { 12, 4, 3 }}); 
    } 

    private int n; 
    private int d; 
    private int q; 

    public JUnitDivideClassTests(int n, int d, int q) { 

     this.n = n; 
     this.d = d; 
     this.q = q; 
    } 

    @Test 
    public void test() { 

     Assert.assertEquals(q, n/d); 
    } 
} 

jak znaleźć @http://codemadesimple.wordpress.com/2012/01/17/paramtest_with_junit/

Odpowiedz

6

Po poszukiwaniach, stwierdziliśmy, że po prostu miałem do wdrożenia (czy raczej stosowanie) następujący kod:

public class ParallelizedParameterized extends Parameterized { 
    private static class ThreadPoolScheduler implements RunnerScheduler { 
     private ExecutorService executor; 

     public ThreadPoolScheduler() { 
      String threads = System.getProperty("junit.parallel.threads", "16"); 
      int numThreads = Integer.parseInt(threads); 
      executor = Executors.newFixedThreadPool(numThreads); 
     } 

     @Override 
     public void finished() { 
      executor.shutdown(); 
      try { 
       executor.awaitTermination(10, TimeUnit.MINUTES); 
      } catch (InterruptedException exc) { 
       throw new RuntimeException(exc); 
      } 
     } 

     @Override 
     public void schedule(Runnable childStatement) { 
      executor.submit(childStatement); 
     } 
    } 

    public ParallelizedParameterized(Class klass) throws Throwable { 
     super(klass); 
     setScheduler(new ThreadPoolScheduler()); 
    } 
} 

@http://hwellmann.blogspot.pt/2009/12/running-parameterized-junit-tests-in.html

+0

to działa, dzięki –

Powiązane problemy