}
public void afterStep( TestCaseRunner testRunner, TestCaseRunContext runContext, TestStepResult result )
{
super.afterStep( testRunner, runContext, result );
TestStep currentStep = runContext.getCurrentStep();
if( currentStep instanceof Assertable )
{
Assertable requestStep = ( Assertable )currentStep;
for( int c = 0; c < requestStep.getAssertionCount(); c++ )
{
TestAssertion assertion = requestStep.getAssertionAt( c );
log.info( "Assertion [" + assertion.getName() + "] has status " + assertion.getStatus() );
if( assertion.getStatus() == AssertionStatus.FAILED )
{
for( AssertionError error : assertion.getErrors() )
log.error( "ASSERTION FAILED -> " + error.getMessage() );
assertions.add( assertion );
assertionResults.put( assertion, ( WsdlTestStepResult )result );
}
testAssertionCount++ ;
}
}
String countPropertyName = currentStep.getName() + " run count";
Long count = ( Long )runContext.getProperty( countPropertyName );
if( count == null )
{
count = new Long( 0 );
}
runContext.setProperty( countPropertyName, new Long( count.longValue() + 1 ) );
if( result.getStatus() == TestStepStatus.FAILED || exportAll )
{
try
{
String exportSeparator = System.getProperty( SOAPUI_EXPORT_SEPARATOR, "-" );
TestCase tc = currentStep.getTestCase();
String nameBase = StringUtils.createFileName( tc.getTestSuite().getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( tc.getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( currentStep.getName(), '_' ) + "-" + count.longValue() + "-"
+ result.getStatus();
WsdlTestCaseRunner callingTestCaseRunner = ( WsdlTestCaseRunner )runContext
.getProperty( "#CallingTestCaseRunner#" );
if( callingTestCaseRunner != null )
{
WsdlTestCase ctc = callingTestCaseRunner.getTestCase();
WsdlRunTestCaseTestStep runTestCaseTestStep = ( WsdlRunTestCaseTestStep )runContext
.getProperty( "#CallingRunTestCaseStep#" );
nameBase = StringUtils.createFileName( ctc.getTestSuite().getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( ctc.getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( runTestCaseTestStep.getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( tc.getTestSuite().getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( tc.getName(), '_' ) + exportSeparator
+ StringUtils.createFileName( currentStep.getName(), '_' ) + "-" + count.longValue() + "-"
+ result.getStatus();
}
String absoluteOutputFolder = getAbsoluteOutputFolder( ModelSupport.getModelItemProject( tc ) );
String fileName = absoluteOutputFolder + File.separator + nameBase + ".txt";
if( result.getStatus() == TestStepStatus.FAILED )
log.error( currentStep.getName() + " failed, exporting to [" + fileName + "]" );
new File( fileName ).getParentFile().mkdirs();
PrintWriter writer = new PrintWriter( fileName );
result.writeTo( writer );