TestNG Group Test Nedir

Grup testi JUnit frameworkünde bulunmayan yeni bir özelliktir. Metotları uygun şekilde gruplamaya ve karmaşıklığı azaltmaya yarar. @Test açıklamasının groups parametresine grup isimleri yazılır. Birden fazla grup verilebilir.

@BeforeGroups ve @AfterGroups açıklamalarına isim verirken @BeforeGroups("isim") şeklinde verildiğinde hata alınmaz fakat çalışmazlar. Bunun yerine @BeforeGroups(groups = "isim") şeklinde kullanılmalıdır.

Metotlarla ilgili Gruplar

public class TestGroup {

    @BeforeGroups(groups = "veritabani")
    public void veritabaniBaglan() {
        System.out.println("Veritanına Bağlan()");
    }

    @AfterGroups(groups = "veritabani")
    public void veritabaniBaglantiBitir() {
        System.out.println("Veritabanı Bağlantısı Bitir");
    }

    @Test(groups = "islem")
    public void islem1() {
        System.out.println("Islem1()");
    }

    @Test(groups = "islem")
    public void islem2() {
        System.out.println("Islem2()");
    }

    @Test(groups = "veritabani")
    public void oracleDbBaglan() {
        System.out.println("oracleDbBaglan()");
    }

    @Test(groups = "veritabani")
    public void mysqlDbBaglan() {
        System.out.println("mysqlDbBaglan()");
    }

    @Test(dependsOnGroups = {"veritabani", "islem"})
    public void sonIslem() {
        System.out.println("Son Islem");
    }

}

sonIslem metodunun @Test açıklamasına verilen dependsOnGroups parametresi belirtilen gruplar sorunsuz çalışmadan metodun çalışmayacağını belirtir. sonIslem metodu veritabani ve islem grubuna dahil metodlara bağımlıdır.

textng.xml dosyası.

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Testler">
    <test name="islem">
        <groups>
            <run>
                <include name="islem" />
                <include name="veritabani"/>
            </run>
        </groups>
        <classes>
            <class name="com.testng.app.TestGroup" />
        </classes>
    </test>
</suite>

Çıktı.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Islem1()
Islem2()
Veritanına Bağlan()
mysqlDbBaglan()
oracleDbBaglan()
Veritabanı Bağlantısı Bitir
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.303 

Sınıflardaki Gruplar

Sınıf düzeyind grup tanımlanabilir. TestCase sınıfının bütün metotları islem grubuna aittir.

@Test(groups = "islem")
public class TestCase {

    public void islem1() {
        System.out.println("Islem1()");
    }

    public void islem2() {
        System.out.println("Islem2()");
    }
}
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Testler">
    <test name="testgroup">
        <classes>
            <class name="com.testng.app.TestGroup"/>
            <class name="com.testng.app.TestCase"/>
        </classes>
    </test>

    <test name="textgroupexclude">
        <groups>
            <run>
                <exclude name="veritabani"/>
            </run>
        </groups>
        <classes>
            <class name="com.testng.app.TestGroup"/>
        </classes>
    </test>

    <test name="islem">
        <groups>
            <run>
                <include name="islem"/>
            </run>
        </groups>
        <classes>
            <class name="com.testng.app.TestGroup"/>
            <class name="com.testng.app.TestCase"/>
        </classes>
    </test>

</suite>

testgroup isimli testteki bütün test metotları çalıştı.

textgroupexclude isimli testteki exclude etiketiyle belirttiğimiz veritabani grubuna sahip testler çalışmadı.

islem adlı testte ise include etiketiyle belirttiğimiz islem grubuna sahip testler çalıştı.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
// testgroup isimli test
IslemCase1()
IslemCase1()
Islem1()
Islem2()
Veritanına Bağlan()
mysqlDbBaglan()
oracleDbBaglan()
Veritabanı Bağlantısı Bitir
Son Islem
// testgroupexclude isimli test
Islem1()
Islem2()
// islem isimli test
IslemCase1()
IslemCase1()
Islem1()
Islem2()
Tests run: 14, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.386 sec