zoukankan      html  css  js  c++  java
  • TestNG – Dependency Test

    转自:http://www.mkyong.com/unittest/testng-tutorial-7-dependency-test/

    In TestNG, we use dependOnMethods and dependsOnGroups to implement dependency testing. If a dependent method is fail, all the subsequent test methods will be skipped, NOT failed.

    1. dependOnMethods Example

    A simple example, “method2()” is dependent on “method1()”.

    1.1 If method1() is passed, method2() will be executed.

    App.java
    package com.mkyong.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");
    	}
    
    }
    

    Output

    This is method 1
    This is method 2
    PASSED: method1
    PASSED: method2
    
    ===============================================
        Default test
        Tests run: 2, Failures: 0, Skips: 0
    ===============================================
    

    1.2 If method1() is failed, method2() will be skipped.

    App.java
    package com.mkyong.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");
    	}
    
    }
    

    Output

    This is method 1
    FAILED: method1
    java.lang.RuntimeException
    	at com.mkyong.testng.examples.dependency.App.method1(App.java:10)
    	//...
    
    SKIPPED: method2
    
    ===============================================
        Default test
        Tests run: 2, Failures: 1, Skips: 1
    ===============================================
    

    2. dependsOnGroups Example

    Let create few test cases to demonstrate the mixed use of dependsOnMethods anddependsOnGroups. See comments for self-explanatory.

    TestServer.java
    package com.mkyong.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.mkyong.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.mkyong.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");
    	}
    
    }
    

    Create a XML file and test them together.

    testng.xml
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    
    <suite name="TestDependency">
    
      <test name="TestCase1">
    		 
    	<classes>
    	  <class 
    		name="com.mkyong.testng.examples.dependency.TestApp">
    	  </class>
    	  <class 
    		name="com.mkyong.testng.examples.dependency.TestDatabase">
    	  </class>
    	  <class 
    		name="com.mkyong.testng.examples.dependency.TestServer">
    	  </class>
    	</classes>
    		
      </test>
    
    </suite>
    

    Output

    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
  • 相关阅读:
    Python使用SMTP模块、email模块发送邮件
    harbor搭建及使用
    ELK搭建-windows
    ELK技术栈之-Logstash详解
    【leetcode】1078. Occurrences After Bigram
    【leetcode】1073. Adding Two Negabinary Numbers
    【leetcode】1071. Greatest Common Divisor of Strings
    【leetcode】449. Serialize and Deserialize BST
    【leetcode】1039. Minimum Score Triangulation of Polygon
    【leetcode】486. Predict the Winner
  • 原文地址:https://www.cnblogs.com/melody-emma/p/4800940.html
Copyright © 2011-2022 走看看