Skip to content

Commit

Permalink
[QE] Change junit xml format to fill test reports on failure
Browse files Browse the repository at this point in the history
  • Loading branch information
Alberto Fanjul authored and adrianriobo committed Oct 14, 2024
1 parent 5611baa commit 410a6db
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 14 deletions.
1 change: 1 addition & 0 deletions images/build-e2e/Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@ COPY --from=builder /workspace/out/${OS}-${ARCH} ${ASSETS_FOLDER}/bin
COPY --from=builder /workspace/test/e2e/features ${ASSETS_FOLDER}/bin/features
COPY --from=builder /workspace/test/testdata ${ASSETS_FOLDER}/testdata

COPY images/build-e2e/common/* ${ASSETS_FOLDER}/
COPY images/build-e2e/lib/${OS}/* ${ASSETS_FOLDER}/

19 changes: 19 additions & 0 deletions images/build-e2e/common/filter.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="failure">
<xsl:copy>
<xsl:value-of select="@message"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>
4 changes: 2 additions & 2 deletions images/build-e2e/lib/darwin/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ cd $targetFolder/bin
# Transform results to junit
cd ..
init_line=$(grep -n '<?xml version="1.0" encoding="UTF-8"?>' results/e2e.results | awk '{split($0,n,":"); print n[1]}')
tail -n +$init_line results/e2e.results > results/$junitFilename
tail -n +$init_line results/e2e.results | xsltproc filter.xsl - > results/$junitFilename
# Copy logs and diagnose
cp -r bin/out/test-results/* results
cp -r bin/out/test-results/* results
4 changes: 2 additions & 2 deletions images/build-e2e/lib/linux/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ cd $targetFolder/bin
# Transform results to junit
cd ..
init_line=$(grep -n '<?xml version="1.0" encoding="UTF-8"?>' results/e2e.results | awk '{split($0,n,":"); print n[1]}')
tail -n +$init_line results/e2e.results > results/$junitFilename
tail -n +$init_line results/e2e.results | xsltproc filter.xsl - > results/$junitFilename
# Copy logs and diagnose
cp -r bin/out/test-results/* results
cp -r bin/out/test-results/* results
16 changes: 12 additions & 4 deletions images/build-e2e/lib/windows/run.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,27 @@ mv $targetFolder/bin/e2e.test $targetFolder/bin/e2e.test.exe
# Run e2e
$env:PATH="$env:PATH;$env:HOME\$targetFolder\bin;"
$env:SHELL="powershell"
New-Item -ItemType directory -Path "$env:HOME\$targetFolder\results" -Force
$targetFolderDir = "$env:HOME\$targetFolder"
$resultsDir = "$targetFolderDir\results"
New-Item -ItemType directory -Path "$resultsDir" -Force

# Run tests
$tags="windows"
if ($e2eTagExpression) {
$tags="$tags && $e2eTagExpression"
}
$dir = "$PWD"
cd $targetFolder\bin
e2e.test.exe --bundle-location=$bundleLocation --pull-secret-file=$env:HOME\$targetFolder\pull-secret --crc-memory=$crcMemory --cleanup-home=false --godog.tags="$tags" --godog.format=junit > $env:HOME\$targetFolder\results\e2e.results
e2e.test.exe --bundle-location=$bundleLocation --pull-secret-file=$targetFolderdir\pull-secret --crc-memory=$crcMemory --cleanup-home=false --godog.tags="$tags" --godog.format=junit > $resultsDir\e2e.results

# Transform results to junit
cd ..
$r = Select-String -Pattern '<?xml version="1.0" encoding="UTF-8"?>' -Path results\e2e.results -list -SimpleMatch | select-object -First 1
Get-Content results\e2e.results | Select -skip ($r.LineNumber -1) > results\$junitFilename
$prejunit = "$resultsDir\$junitFilename.pre"
Get-Content "$resultsDir\e2e.results" | Select -skip ($r.LineNumber -1) > "$prejunit"
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
$xslt.load("$targetFolderDir\filter.xsl")
$xslt.transform( "$prejunit", "$resultsDir\$junitFilename" )
rm "$prejunit"
# Copy logs and diagnose
cp -r bin\out\test-results\* results
cp -r bin\out\test-results\* results
1 change: 1 addition & 0 deletions images/build-integration/Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ ENV ASSETS_FOLDER=/opt/crc \
ARCH=${ARCH}

COPY --from=builder /workspace/out/${OS}-${ARCH} ${ASSETS_FOLDER}/bin
COPY images/build-integration/common/* ${ASSETS_FOLDER}/
COPY images/build-integration/lib/${OS}/* ${ASSETS_FOLDER}/

19 changes: 19 additions & 0 deletions images/build-integration/common/filter.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="failure">
<xsl:copy>
<xsl:value-of select="@message"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>
2 changes: 1 addition & 1 deletion images/build-integration/lib/darwin/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,4 @@ fi
# Copy results
cd ..
cp bin/integration.results results/integration.results
cp bin/out/integration.xml results/$junitFilename
cat bin/out/integration.xml | xsltproc filter.xsl - > results/$junitFilename
2 changes: 1 addition & 1 deletion images/build-integration/lib/linux/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ fi
# Copy results
cd ..
cp bin/integration.results results/integration.results
cp bin/out/integration.xml results/$junitFilename
cat bin/out/integration.xml | xsltproc filter.xsl - > results/$junitFilename
17 changes: 13 additions & 4 deletions images/build-integration/lib/windows/run.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,28 @@ mv $targetFolder/bin/integration.test $targetFolder/bin/integration.test.exe
# Run e2e
$env:PATH="$env:PATH;$env:HOME\$targetFolder\bin;"
$env:SHELL="powershell"
New-Item -ItemType directory -Path "$env:HOME\$targetFolder\results" -Force
$targetFolderDir = "$env:HOME\$targetFolder"
$resultsDir = "$targetFolderDir\results"

New-Item -ItemType directory -Path "$resultsDir" -Force

# Run tests
cd $targetFolder\bin

if ($labelFilter) {
integration.test.exe --pull-secret-path="$env:HOME\$targetFolder\pull-secret" --bundle-path=$bundleLocation --ginkgo.timeout $suiteTimeout --ginkgo.label-filter "$labelFilter" > integration.results
integration.test.exe --pull-secret-path="$targetFolderDir\pull-secret" --bundle-path=$bundleLocation --ginkgo.timeout $suiteTimeout --ginkgo.label-filter "$labelFilter" > integration.results
} else {
integration.test.exe --pull-secret-path="$env:HOME\$targetFolder\pull-secret" --bundle-path=$bundleLocation --ginkgo.timeout $suiteTimeout > integration.results
integration.test.exe --pull-secret-path="$targetFolderDir\pull-secret" --bundle-path=$bundleLocation --ginkgo.timeout $suiteTimeout > integration.results
}


# Copy results
cd ..
cp bin\integration.results results\integration.results
cp bin\out\integration.xml results\$junitFilename
$prejunit = "$resultsDir\$junitFilename.pre"
cp bin\out\integration.xml $prejunit

$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
$xslt.load("$targetFolderDir\filter.xsl")
$xslt.transform( "$prejunit", "$resultsDir\$junitFilename" )
rm "$prejunit"

0 comments on commit 410a6db

Please sign in to comment.