2017-03-17 87 views
5

O, herkes! Sınavlarım jenkins tarafından genel paketten çalışıyor. İlk önce runnning yapacak olan test paketini ayarlayabilir miyim ve eğer bu pakette herhangi bir testten geçilmezse diğer testler atlanmalıdır. Böyle örnekler gördüm:Paketlere göre test siparişi testi

import org.junit.runner.RunWith; 
import org.junit.runners.Suite;  
@RunWith(Suite.class)  
@Suite.SuiteClasses({TestJunit1.class, TestJunit2.class})  
    public class JunitTestSuite { 
    } 

Ama belki Spock ı diğer birçok paketlerde birçok test sınıfları, çünkü yerine her sınıfların enum paketlerini kullanabilirsiniz çözümü var. da i

import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 

public class TestRunner { 
    public static void main(String[] args) { 
    Result result = JUnitCore.runClasses(JunitTestSuite.class);  
     for (Failure failure : result.getFailures()) { 
     System.out.println(failure.toString()); 
     }   
     System.out.println(result.wasSuccessful()); 
    } 
} 

ana iplik doesnt durdurma koşucu

kullanmışlardır. Nedenini bilmiyorum. ben böyle bir şey yapmak istiyorum: belki
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 

public class TestRunner { 
    public static void main(String[] args) { 
     Result result = JUnitCore.runClasses(JunitTestSuite.class);  
     for (Failure failure : result.getFailures()) { 
     System.out.println(failure.toString()); 
     } 
     if(result.wasSuccessful()){ 
     JUnitCore.runClasses(JunitTestSuite.class); 
     }else { 
     System.out.println("Build failed"); 
     } 
    } 
} 

Ya

import org.junit.runner.RunWith; 
import org.junit.runners.Suite;   
@RunWith(Suite.class)   
@Suite.SuiteClasses({com.example.otherTest.*.class, com.example.otherTests2.*.class})   
    public class JunitTestSuiteFirst { 
    } 

import org.junit.runner.RunWith; 
import org.junit.runners.Suite;  
@RunWith(Suite.class)  
@Suite.SuiteClasses({com.example.test.*.class})  
    public class JunitTestSuiteFirst { 
    } 

Bu görevin daha basit bir çözüm var. Teşekkürler.

cevap

0

Ünite test çerçevenizde yapabileceğiniz her şey güzel olmayacaktır. Bunun nedeni, ünite testlerinin birbirinden bağımsız olması ve bu zihniyetin testlerin sırasını yapılandırmak için güçlü bir destek olmayacağıdır. Böylelikle en iyi seçenek, çözüm araçlarınızı (Ant, Maven, Gradle, vb.) Aramaktır.

Aşağıdaki taslak snippet'i, 2 farklı birim/birim sınama kümesi oluşturur. gradle test integrationTest build komutuyla, src/integral altındaki testler sadece tüm testler/testler altından geçerse çalışacaktır.

sourceSets { 
    integrationTest { 
     java { 
      srcDirs = ['src/integration'] 
     } 
     groovy { 
      srcDirs = ['src/integration'] 
     } 
     resources.srcDir file('src/integration/resources') 
    } 

    test { 
     java { 
      srcDirs = ['src/test'] 
     } 
     groovy { 
      srcDirs = ['src/test'] 
     } 
    } 
} 
+0

Tüm testlerim bir pakette bulunur. Evet, denedikten sonra. Gradle dosyasında başlamayı da ekledim. Paket için tek bir görevde ekledim ve yalnızca başka bir pakette gereken paketi dahil ettim. Ve bu görevler arasında dependOn ayarlandı –