TestNG - Abhängigkeitstest

TestNG - Abhängigkeitstest

In TestNG verwenden wirdependOnMethods unddependsOnGroups, um Abhängigkeitstests zu implementieren. Wenn eine abhängige Methode fehlschlägt, werden alle nachfolgenden Testmethoden übersprungen, NICHT fehlgeschlagen.

1. DependOnMethods Beispiel

Ein einfaches Beispiel, "method2 ()", hängt von "method1 ()" ab.

1.1 Wennmethod1() übergeben wird, wirdmethod2() ausgeführt.

App.java

package com.example.testng.examples.dependency;

import org.testng.annotations.Test;

public class App {

    @Test
    public void method1() {
        System.out.println("This is method 1");
    }

    @Test(dependsOnMethods = { "method1" })
    public void method2() {
        System.out.println("This is method 2");
    }

}

Ausgabe

This is method 1
This is method 2
PASSED: method1
PASSED: method2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================

1.2 Wennmethod1() fehlgeschlagen ist, werdenmethod2() übersprungen.

App.java

package com.example.testng.examples.dependency;

import org.testng.annotations.Test;

public class App {

    //This test will be failed.
    @Test
    public void method1() {
        System.out.println("This is method 1");
        throw new RuntimeException();
    }

    @Test(dependsOnMethods = { "method1" })
    public void method2() {
        System.out.println("This is method 2");
    }

}

Ausgabe

This is method 1
FAILED: method1
java.lang.RuntimeException
    at com.example.testng.examples.dependency.App.method1(App.java:10)
    //...

SKIPPED: method2

===============================================
    Default test
    Tests run: 2, Failures: 1, Skips: 1
===============================================

2. DependantsOnGroups Beispiel

Lassen Sie uns einige Testfälle erstellen, um die gemischte Verwendung vondependsOnMethods unddependsOnGroups zu demonstrieren. Siehe Kommentare zur Selbsterklärung.

TestServer.java

package com.example.testng.examples.dependency;

import org.testng.annotations.Test;

//all methods of this class are belong to "deploy" group.
@Test(groups="deploy")
public class TestServer {

    @Test
    public void deployServer() {
        System.out.println("Deploying Server...");
    }

    //Run this if deployServer() is passed.
    @Test(dependsOnMethods="deployServer")
    public void deployBackUpServer() {
        System.out.println("Deploying Backup Server...");
    }

}

TestDatabase.java

package com.example.testng.examples.dependency;

import org.testng.annotations.Test;

public class TestDatabase {

    //belong to "db" group,
    //Run if all methods from "deploy" group are passed.
    @Test(groups="db", dependsOnGroups="deploy")
    public void initDB() {
        System.out.println("This is initDB()");
    }

    //belong to "db" group,
    //Run if "initDB" method is passed.
    @Test(dependsOnMethods = { "initDB" }, groups="db")
    public void testConnection() {
        System.out.println("This is testConnection()");
    }

}

TestApp.java

package com.example.testng.examples.dependency;

import org.testng.annotations.Test;

public class TestApp {

    //Run if all methods from "deploy" and "db" groups are passed.
    @Test(dependsOnGroups={"deploy","db"})
    public void method1() {
        System.out.println("This is method 1");
        //throw new RuntimeException();
    }

    //Run if method1() is passed.
    @Test(dependsOnMethods = { "method1" })
    public void method2() {
        System.out.println("This is method 2");
    }

}

Erstellen Sie eine XML-Datei und testen Sie sie gemeinsam.

testng.xml





  

    
      
      
      
      
      
      
    

  

Ausgabe

Deploying Server...
Deploying Backup Server...
This is initDB()
This is testConnection()
This is method 1
This is method 2

===============================================
TestDependency
Total tests run: 6, Failures: 0, Skips: 0
===============================================

testng-dependency-test