JUnitXMLTestResult.cfc method buildXMLResults() references data from
original cfcatch "struct". The key of "stacktrace" is not always available
on Open BD.
This conditional code fixes the issue:
if( listFindNoCase("Failed",testResults.testStatus)){
this.resultsXML = this.resultsXML & '<failure
message="#testResults.error.message#">';
if (StructKeyExists(testResults.error, "stacktrace") {
this.resultsXML = this.resultsXML &
'<![CDATA[#testResults.error.stacktrace#]]>';
}
this.resultsXML = this.resultsXML & '</failure>';
}
else if( listFindNoCase("Error",testResults.testStatus)) {
this.resultsXML = this.resultsXML & '<error
message="#testResults.error.type#">';
if (StructKeyExists(testResults.error, "stacktrace") {
this.resultsXML = this.resultsXML &
'<![CDATA[#testResults.error.stacktrace#]]>';
}
this.resultsXML = this.resultsXML & '</error>';
}
FYI, the fix above is missing the additional ")" in the conditions: if (StructKeyExists(testResults.error, "stacktrace") { Should be: if( listFindNoCase("Failed",testResults.testStatus)){ this.resultsXML = this.resultsXML & '<failure message="#testResults.error.message#">'; if (StructKeyExists(testResults.error, "stacktrace")) { this.resultsXML = this.resultsXML & '<![CDATA[#testResults.error.stacktrace#]]>'; } this.resultsXML = this.resultsXML & '</failure>'; } else if( listFindNoCase("Error",testResults.testStatus)) { this.resultsXML = this.resultsXML & '<error message="#testResults.error.type#">'; if (StructKeyExists(testResults.error, "stacktrace")) { this.resultsXML = this.resultsXML & '<![CDATA[#testResults.error.stacktrace#]]>'; } this.resultsXML = this.resultsXML & '</error>'; } This occurs twice.