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

Mar 25th, 2015 | Yazar: Özcan Acar | Kategori: Yazılım Testleri

Ç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

Share Button

Özcan Acar

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor.

KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Kurduğu BTSoru.com'da ona yazılımla ile ilgili sorularınızı yöneltebilirsiniz. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.
  • Share/Bookmark
1 yorum | 664 kez okundu |

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (Değerlendirme bulunmuyor)
Loading ... Loading ...
Tags: ,

1 YORUM “Eclipse Altında Birim ve Entegrasyon Testleri Nasıl Ayrı Koşturulur?”

  1. Minibüs kiralama diyor ki:

    cok teskuler bende bi kac gundur bunu ariyordumya cok sagolun paylasım icin

BU YAZI İÇİN BİR YORUM YAPABİLİRSİNİZ.