2017-10-27 12 views

答えて

0

以下のサンプルは、これを行う方法を示します。ここで

import org.testng.Assert; 
import org.testng.ISuite; 
import org.testng.ISuiteResult; 
import org.testng.ITestContext; 
import org.testng.ITestResult; 
import org.testng.annotations.AfterSuite; 
import org.testng.annotations.Test; 

import java.util.Collection; 

public class TestClassSample { 
    @Test 
    public void passingTestMethod() { } 

    @Test 
    public void failingTestMethod() { 
     Assert.fail(); 
    } 

    @AfterSuite 
    public void afterSuite(ITestContext context) { 
     printSuiteResults(context.getSuite()); 
    } 

    private void printSuiteResults(ISuite suite) { 
     Collection<ISuiteResult> suiteResults = suite.getResults().values(); 
     for (ISuiteResult suiteResult : suiteResults) { 
      printAllResults(suiteResult.getTestContext()); 
     } 
    } 

    private void printAllResults(ITestContext context) { 
     System.err.println("Printing tests that passed."); 
     printAllResults(context.getPassedTests().getAllResults()); 
     System.err.println("Printing tests that failed."); 
     printAllResults(context.getFailedTests().getAllResults()); 
    } 

    private void printAllResults(Collection<ITestResult> results) { 
     for (ITestResult result : results) { 
      printResult(result); 
     } 
    } 

    private void printResult(ITestResult result) { 
     System.err.println("Method Name: " + result.getMethod().getMethodName() + "()"); 
    } 
} 

は出力です:

java.lang.AssertionError: null 

    at org.testng.Assert.fail(Assert.java:93) 
    at org.testng.Assert.fail(Assert.java:100) 
    at com.rationaleemotions.stackoverflow.qn46967666.TestClassSample.failingTestMethod(TestClassSample.java:21) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:669) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:877) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1201) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 
    at org.testng.TestRunner.privateRun(TestRunner.java:776) 
    at org.testng.TestRunner.run(TestRunner.java:634) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:426) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:421) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:386) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:334) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1318) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1243) 
    at org.testng.TestNG.runSuites(TestNG.java:1161) 
    at org.testng.TestNG.run(TestNG.java:1129) 
    at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) 
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123) 

Printing tests that passed. 

Method Name: passingTestMethod() 
Printing tests that failed. 
Method Name: failingTestMethod() 

=============================================== 
Default Suite 
Total tests run: 2, Failures: 1, Skips: 0 
=============================================== 
関連する問題