1 package org.testng; 2 3 import org.testng.collections.Lists; 4 import org.testng.collections.Objects; 5 import org.testng.internal.IResultListener2; 6 7 import java.util.ArrayList; 8 import java.util.Collections; 9 import java.util.List; 10 11 12 /** 13 * A simple ITestListener adapter that stores all the tests 14 * that were run. You can retrieve these results with the 15 * following methods: 16 * getPassedTests() 17 * getFailedTests() 18 * getSkippedTests() 19 * 20 * If you extend this class in order to override any of these 21 * methods, remember to call their super equivalent if you want 22 * this list of tests to be maintained. 23 * 24 * @author Cedric Beust, Aug 6, 2004 25 * @author <a href='mailto:the_mindstorm@evolva.ro'>Alexandru Popescu</a> 26 */ 27 public class TestListenerAdapter implements IResultListener2 { 28 private List<ITestNGMethod> m_allTestMethods = 29 Collections.synchronizedList(Lists.<ITestNGMethod>newArrayList()); 30 private List<ITestResult> m_passedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 31 private List<ITestResult> m_failedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 32 private List<ITestResult> m_skippedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 33 private List<ITestResult> m_failedButWSPerTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 34 private List<ITestContext> m_testContexts= Collections.synchronizedList(new ArrayList<ITestContext>()); 35 private List<ITestResult> m_failedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 36 private List<ITestResult> m_skippedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 37 private List<ITestResult> m_passedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList()); 38 39 @Override onTestSuccess(ITestResult tr)40 public void onTestSuccess(ITestResult tr) { 41 m_allTestMethods.add(tr.getMethod()); 42 m_passedTests.add(tr); 43 } 44 45 @Override onTestFailure(ITestResult tr)46 public void onTestFailure(ITestResult tr) { 47 m_allTestMethods.add(tr.getMethod()); 48 m_failedTests.add(tr); 49 } 50 51 @Override onTestSkipped(ITestResult tr)52 public void onTestSkipped(ITestResult tr) { 53 m_allTestMethods.add(tr.getMethod()); 54 m_skippedTests.add(tr); 55 } 56 57 @Override onTestFailedButWithinSuccessPercentage(ITestResult tr)58 public void onTestFailedButWithinSuccessPercentage(ITestResult tr) { 59 m_allTestMethods.add(tr.getMethod()); 60 m_failedButWSPerTests.add(tr); 61 } 62 getAllTestMethods()63 protected ITestNGMethod[] getAllTestMethods() { 64 return m_allTestMethods.toArray(new ITestNGMethod[m_allTestMethods.size()]); 65 } 66 67 @Override onStart(ITestContext testContext)68 public void onStart(ITestContext testContext) { 69 m_testContexts.add(testContext); 70 } 71 72 @Override onFinish(ITestContext testContext)73 public void onFinish(ITestContext testContext) { 74 } 75 76 /** 77 * @return Returns the failedButWithinSuccessPercentageTests. 78 */ getFailedButWithinSuccessPercentageTests()79 public List<ITestResult> getFailedButWithinSuccessPercentageTests() { 80 return m_failedButWSPerTests; 81 } 82 /** 83 * @return Returns the failedTests. 84 */ getFailedTests()85 public List<ITestResult> getFailedTests() { 86 return m_failedTests; 87 } 88 /** 89 * @return Returns the passedTests. 90 */ getPassedTests()91 public List<ITestResult> getPassedTests() { 92 return m_passedTests; 93 } 94 /** 95 * @return Returns the skippedTests. 96 */ getSkippedTests()97 public List<ITestResult> getSkippedTests() { 98 return m_skippedTests; 99 } 100 ppp(String s)101 private static void ppp(String s) { 102 System.out.println("[TestListenerAdapter] " + s); 103 } 104 /** 105 * @param allTestMethods The allTestMethods to set. 106 */ setAllTestMethods(List<ITestNGMethod> allTestMethods)107 public void setAllTestMethods(List<ITestNGMethod> allTestMethods) { 108 m_allTestMethods = allTestMethods; 109 } 110 /** 111 * @param failedButWithinSuccessPercentageTests The failedButWithinSuccessPercentageTests to set. 112 */ setFailedButWithinSuccessPercentageTests( List<ITestResult> failedButWithinSuccessPercentageTests)113 public void setFailedButWithinSuccessPercentageTests( 114 List<ITestResult> failedButWithinSuccessPercentageTests) { 115 m_failedButWSPerTests = failedButWithinSuccessPercentageTests; 116 } 117 /** 118 * @param failedTests The failedTests to set. 119 */ setFailedTests(List<ITestResult> failedTests)120 public void setFailedTests(List<ITestResult> failedTests) { 121 m_failedTests = failedTests; 122 } 123 /** 124 * @param passedTests The passedTests to set. 125 */ setPassedTests(List<ITestResult> passedTests)126 public void setPassedTests(List<ITestResult> passedTests) { 127 m_passedTests = passedTests; 128 } 129 /** 130 * @param skippedTests The skippedTests to set. 131 */ setSkippedTests(List<ITestResult> skippedTests)132 public void setSkippedTests(List<ITestResult> skippedTests) { 133 m_skippedTests = skippedTests; 134 } 135 136 @Override onTestStart(ITestResult result)137 public void onTestStart(ITestResult result) { 138 } 139 getTestContexts()140 public List<ITestContext> getTestContexts() { 141 return m_testContexts; 142 } 143 getConfigurationFailures()144 public List<ITestResult> getConfigurationFailures() { 145 return m_failedConfs; 146 } 147 148 /** 149 * @see org.testng.IConfigurationListener#onConfigurationFailure(org.testng.ITestResult) 150 */ 151 @Override onConfigurationFailure(ITestResult itr)152 public void onConfigurationFailure(ITestResult itr) { 153 m_failedConfs.add(itr); 154 } 155 getConfigurationSkips()156 public List<ITestResult> getConfigurationSkips() { 157 return m_skippedConfs; 158 } 159 160 @Override beforeConfiguration(ITestResult tr)161 public void beforeConfiguration(ITestResult tr) { 162 } 163 164 /** 165 * @see org.testng.IConfigurationListener#onConfigurationSkip(org.testng.ITestResult) 166 */ 167 @Override onConfigurationSkip(ITestResult itr)168 public void onConfigurationSkip(ITestResult itr) { 169 m_skippedConfs.add(itr); 170 } 171 172 /** 173 * @see org.testng.IConfigurationListener#onConfigurationSuccess(org.testng.ITestResult) 174 */ 175 @Override onConfigurationSuccess(ITestResult itr)176 public void onConfigurationSuccess(ITestResult itr) { 177 m_passedConfs.add(itr); 178 } 179 180 @Override toString()181 public String toString() { 182 return Objects.toStringHelper(getClass()) 183 .add("passed", getPassedTests().size()) 184 .add("failed", getFailedTests().size()) 185 .add("skipped", getSkippedTests().size()) 186 .toString(); 187 } 188 } 189