diff --git a/tests/utils/fpts2junit.pp b/tests/utils/fpts2junit.pp index 81651178c1..f7be8c1fe3 100644 --- a/tests/utils/fpts2junit.pp +++ b/tests/utils/fpts2junit.pp @@ -24,7 +24,7 @@ uses DOM, XMLWrite; const - MAX_XML_CHARS = 1000; + MAX_XML_CHARS = 10000; LOG_SHORT = 'log'; LOG_LONG = 'longlog'; @@ -74,6 +74,7 @@ var className: String; caseName: String; i: Integer; + lastname: string; begin logShort:=TStringList.Create; logLong:=TStringList.Create; @@ -101,7 +102,7 @@ begin error:=0; skipped:=0; success:=0; - + lastname := ''; rootNode:=junitXML.CreateElement('testsuite'); junitXML.AppendChild(rootNode); @@ -120,13 +121,17 @@ begin className:=AnsiLeftStr(tmpString,RPos(DirectorySeparator,tmpString)-1); caseName:=ExtractWord(WordCount(tmpString,[DirectorySeparator]),tmpString,[DirectorySeparator]); - // create testcase node - caseNode:=junitXML.CreateElement('testcase'); - if pos('../', classname) = 1 then - Delete(classname, 1, 3); - TDOMElement(caseNode).SetAttribute('classname',WideString(className)); - TDOMElement(caseNode).SetAttribute('name',WideString(caseName)); - rootNode.AppendChild(caseNode); + if LastName <> (classname + '.' + casename) then + begin + LastName := classname + '.' + casename; + // create testcase node + caseNode:=junitXML.CreateElement('testcase'); + if pos('../', classname) = 1 then + Delete(classname, 1, 3); + TDOMElement(caseNode).SetAttribute('classname',WideString(className)); + TDOMElement(caseNode).SetAttribute('name',WideString(caseName)); + rootNode.AppendChild(caseNode); + end; if AnsiStartsText(PATTERN_FAILED, tmpLine) then begin