Evet, bir test paketindeki herhangi bir testten önce ve sonra kurulum ve sökme yöntemlerini güvenilir bir şekilde çalıştırmak mümkündür. Kodla göstermeme izin verin:
package com.test;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
@BeforeClass
public static void setUp() {
System.out.println("setting up");
}
@AfterClass
public static void tearDown() {
System.out.println("tearing down");
}
}
Yani Test1
sınıfınız şuna benzer:
package com.test;
import org.junit.Test;
public class Test1 {
@Test
public void test1() {
System.out.println("test1");
}
}
... ve bunun Test2
benzer göründüğünü hayal edebilirsiniz . Koşarsan TestSuite
, alırsın:
setting up
test1
test2
tearing down
Böylece kurulum / sökme işleminin yalnızca sırasıyla tüm testlerden önce ve sonra çalıştığını görebilirsiniz.
Yakalama: bu yalnızca test paketini çalıştırıyorsanız ve Test1 ve Test2'yi bağımsız JUnit testleri olarak çalıştırmıyorsanız işe yarar. Maven kullandığınızı söylediniz ve maven surefire eklentisi, testleri bir paketin parçası değil, ayrı ayrı çalıştırmayı seviyor. Bu durumda, her test sınıfının genişlettiği bir üst sınıf oluşturmanızı tavsiye ederim. Üst sınıf daha sonra açıklamalı @BeforeClass ve @AfterClass yöntemlerini içerir. Yukarıdaki yöntem kadar temiz olmasa da sizin için işe yarayacağını düşünüyorum.
Başarısız testlerle ilgili soruna gelince, maven.test.error.ignore ayarını yaparak başarısız testler üzerinde yapının devam etmesini sağlayabilirsiniz. Bu, sürekli bir uygulama olarak tavsiye edilmez, ancak tüm testleriniz geçene kadar çalışmanızı sağlamalıdır. Daha fazla ayrıntı için maven surefire belgelerine bakın .
post-integration-test
bir test başarısız olursa. Ayrıca bu wiki sayfasına bakın .