• 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
  • 相关阅读:
    ajax 异步问题
    mysql update 报 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode
    JSON string 和 object 转换
    Mybatis insert 返回主键
    switch case 的值
    $(this).attr("checked") 用jquery取checkbox的值 返回undefined
    7天入门JavaScript,第五天
    7天入门JavaScript,第四天
    7天入门JavaScript,第三天
    保持按钮的高亮状态
  • 原文地址:https://www.cnblogs.com/melody-emma/p/4800940.html
Copyright © 2020-2023  润新知