Eclipse Altında Birim ve Entegrasyon Testleri Nasıl Ayrı Koşturulur?

Çalıştığım projede aynı sınıfın entegrasyon ve birim testleri aynı paketin içinde yer alıyor. Maven ile birim testlerini yapıdan (build) önce, entegrasyon testlerini yapı ve deployment sonrası koşturmak mümkün. Bu şekilde testler ayırt edilebiliyor. Lakin Eclipse altında testleri koşturmak istediğim zaman, doğal olarak JUnit plugin testleri ayırt etmeden, beraber koşturuyor. Geliştirme esnasında bu sıkıntılı bir durum, çünkü sadece birim testlerini koşturarak, seri bir şekilde geribildirim almak istiyorum.

Bu durumu çözmek için şöyle bir TestSuite sınıfı oluşturulabilir:

@RunWith(Suite.class)
@SuiteClasses({ MyClassTest.class, MySecondClassTest.class })
public class AllTests {

} 

AllTests sınıfı koşturulduğu taktirde, MyClassTest ve MySecondClassTest isimli testler koşturulur. Tüm birim testlerinin @SuiteClasses anotasyonunda belirtilmesi gerekiyor. Yüzlerce test sınıfının olduğu bir uygulamada birkaç birim testinin AllTests sınıfına unutularak, eklenmeyeceği aşikar. Bu yüzden bu çözümü uygun bulmuyorum.

Junit-Toolbox yardımı ile TestSuite bünyesinde koşturulacak testleri ayırt etmek mümkün. Aşağıda bunun bir örneğini görmektesiniz.

import org.junit.runner.RunWith;

import com.googlecode.junittoolbox.ParallelSuite;
import com.googlecode.junittoolbox.SuiteClasses;

@RunWith(ParallelSuite.class)
@SuiteClasses({ "**/*Test.class", "!**/*IntegrationTest.class",
		"!**/*RestTest.class" })
public class FastUnitTestSuite {
}

FastUnitTestSuite bünyesinde sadece ismi Test.class ile biten testler koşturuluyor. Bunlar projede yer alan birim (unit) testleri. Entegrasyon testlerinin isimleri *IntegrationTest.class şeklinde oldugundan, !**/*IntegrationTest.class ile bu testlerin koşturulması engellenmiş oluyor.

Junit-Toolbox projesini şu şekilde Maven projesine dahil etmek mümkün.

<dependency>
	<groupId>com.googlecode.junit-toolbox</groupId>
	<artifactId>junit-toolbox</artifactId>
	<version>1.8</version>
</dependency>


EOF (End Of Fun)
Özcan Acar

Eclipse Altında Birim ve Entegrasyon Testleri Nasıl Ayrı Koşturulur?” hakkında bir yorum

Yorumlar kapalı.