1
2
3
4
5
6
7
8
9
10
11
12 package com.eviware.soapui.impl.wsdl.panels.project;
13
14 import java.util.Date;
15
16 import com.eviware.soapui.SoapUI;
17 import com.eviware.soapui.impl.wsdl.panels.testcase.JTestRunLog;
18 import com.eviware.soapui.impl.wsdl.panels.testcase.TestRunLogTestRunListener;
19 import com.eviware.soapui.impl.wsdl.testcase.WsdlTestSuiteRunner;
20 import com.eviware.soapui.model.testsuite.TestCase;
21 import com.eviware.soapui.model.testsuite.TestCaseRunner;
22 import com.eviware.soapui.model.testsuite.TestSuiteRunContext;
23 import com.eviware.soapui.model.testsuite.TestSuiteRunListener;
24 import com.eviware.soapui.model.testsuite.TestSuiteRunner;
25
26 public class TestRunLogTestSuiteRunListener extends TestRunLogTestRunListener implements TestSuiteRunListener
27 {
28 public TestRunLogTestSuiteRunListener( JTestRunLog runLog, boolean clearOnRun )
29 {
30 super( runLog, clearOnRun );
31 }
32
33 public void beforeRun( TestSuiteRunner testRunner, TestSuiteRunContext runContext )
34 {
35 if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestSuite() ) )
36 return;
37
38 if( clearOnRun )
39 runLog.clear();
40
41 String testSuiteName = testRunner.getTestRunnable().getName();
42 runLog.addBoldText( "TestSuite [" + testSuiteName + "] started at " + dateFormat.format( new Date() ) );
43 runLog.setStepIndex( 0 );
44 }
45
46 public void afterRun( TestSuiteRunner testRunner, TestSuiteRunContext runContext )
47 {
48 if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestSuite() ) )
49 return;
50
51 WsdlTestSuiteRunner wsdlRunner = ( WsdlTestSuiteRunner )testRunner;
52
53 String testSuiteName = testRunner.getTestRunnable().getName();
54 if( testRunner.getStatus() == TestCaseRunner.Status.CANCELED )
55 runLog.addText( "TestSuite [" + testSuiteName + "] canceled [" + testRunner.getReason() + "], time taken = "
56 + wsdlRunner.getTimeTaken() );
57
58 else if( testRunner.getStatus() == TestCaseRunner.Status.FAILED )
59 {
60 String msg = wsdlRunner.getReason();
61 if( wsdlRunner.getError() != null )
62 {
63 if( msg != null )
64 msg += ":";
65
66 msg += wsdlRunner.getError();
67 }
68
69 runLog.addText( "TestSuite [" + testSuiteName + "] failed [" + msg + "], time taken = "
70 + wsdlRunner.getTimeTaken() );
71 }
72 else
73 runLog.addText( "TestSuite [" + testSuiteName + "] finished with status [" + testRunner.getStatus()
74 + "], time taken = " + wsdlRunner.getTimeTaken() );
75 }
76
77 public void beforeTestCase( TestSuiteRunner testRunner, TestSuiteRunContext runContext, TestCase testCase )
78 {
79 if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestSuite() ) )
80 return;
81
82 testCase.addTestRunListener( this );
83 }
84
85 public void afterTestCase( TestSuiteRunner testRunner, TestSuiteRunContext runContext, TestCaseRunner testCaseRunner )
86 {
87 testCaseRunner.getTestCase().removeTestRunListener( this );
88 }
89 }