Skip to content

Commit dfa9f03

Browse files
authored
Make generate-junit-reports.sc script recover from test failures containing no trace data (#3341)
1 parent 88a31cb commit dfa9f03

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

.github/scripts/generate-junit-reports.sc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import java.io.File
77
import scala.collection.mutable.ArrayBuffer
88
import scala.annotation.tailrec
99
import java.nio.file.Paths
10+
import scala.util.Try
1011

1112
case class Trace(declaringClass: String, methodName: String, fileName: String, lineNumber: Int) {
1213
override def toString: String = s"$declaringClass.$methodName($fileName:$lineNumber)"
@@ -97,11 +98,14 @@ val suites = tests.groupBy(_.fullyQualifiedName).map { case (suit, tests) =>
9798
} time={test.duration.toString}>
9899
{
99100
test.failure.map { failure =>
101+
val maybeTrace = Try(failure.trace(1)).toOption
102+
val fileName = maybeTrace.map(_.fileName).getOrElse("unknown")
103+
val lineNumber = maybeTrace.map(_.lineNumber).getOrElse(-1)
100104
<failure message={failure.message} type="ERROR">
101105
ERROR: {failure.message}
102106
Category: {failure.name}
103-
File: {failure.trace(1).fileName}
104-
Line: {failure.trace(1).lineNumber}
107+
File: {fileName}
108+
Line: {lineNumber}
105109
</failure>
106110
}.orNull
107111
}

0 commit comments

Comments
 (0)