Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Softwaretests und Qualitätssicherung (https://www.delphipraxis.net/86-softwaretests-und-qualitaetssicherung/)
-   -   DUnit und Jenkins - Wie errorcode auswerten (https://www.delphipraxis.net/214176-dunit-und-jenkins-wie-errorcode-auswerten.html)

Harry Stahl 28. Nov 2023 21:18

DUnit und Jenkins - Wie errorcode auswerten
 
Ich habe für eine Unit ein Testprojekt erstellt (mit DUNIT).

Das lasse ich erst mal erzeugen und führe dann im PostBuild das Projekt aus.

Wenn ein Test fehl geht, erhalte ich z.B. Ausgaben wie hier dargestellt:

Code:
Executing: "D:\DEV\DX10\PCDatabase\Test\Win32\Debug\PCDatabaseTests.exe"
DataFiles: "D:\DEV\DX10\PCDatabase\Test\Win32\Debug\"
OSVersion: "Windows 10 (Version 22H2, Betriebssystem-Build 19045.3570, 64-Bit-Edition)"

DUnit / Testing
E.......
Time: 0:00:00.557

FAILURES!!!
Test Results:
Run:            8
Failures:       0
Errors:         1
There was 1 error:
  1) [TestBinaryDB] TestTBinaryDB.TestSaveFreeSpaceList: EOSError
     at
      "Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen"
Jenkins wertet das aber nicht als Fehler und zeigt ein OK an. Habe gelesen, dass man die Ausgabe des DUnit-Ergebnisses als XML-Datei für JUnit umwandeln lassen muss. Bloß womit und wie mache ich das?

himitsu 28. Nov 2023 23:03

AW: DUnit und Jenkins - Wie errorcode auswerten
 
Lässt du dir nicht für Jenkins vom DUnitX so eine XML generieren?

Steht der Fehler dort auch als Fehler drin?



Jupp, steht so in der Hilfe, wenn ich mich nicht irre.

Da muß nur der "XML Logger" hinzugefügt werden (die Logger-Unit dafür ins Uses)

jsheyer 29. Nov 2023 07:26

AW: DUnit und Jenkins - Wie errorcode auswerten
 
Ich habe das bei mir so konfigueriert:

Code:
  {$IFDEF TESTINSIGHT}
  TestInsight.DUnitX,
  {$ELSE}
  DUnitX.Loggers.Console,
  DUnitX.Loggers.XML.NUnit,
  {$ENDIF }
Damit kann ich steuern, ob ich das im Testinsight oder im Jenkins benutze.
Und im Jenkins habe ich dann eine stage für den Test:

Code:
        stage('Test') {
            steps {
                echo 'Testing..'
            bat 'testprogram.exe --xmlfile:.\\ausgabe.xml'
                nunit testResultsPattern: 'ausgabe.xml'
            }
        }
Damit werden die einzelnen Testergebnisse auch sauber in Jenkins dargestellt.

mjustin 29. Nov 2023 08:46

AW: DUnit und Jenkins - Wie errorcode auswerten
 
Zitat:

Zitat von jsheyer (Beitrag 1530201)
Ich habe das bei mir so konfigueriert:
...
Damit werden die einzelnen Testergebnisse auch sauber in Jenkins dargestellt.

Das ist aber ein anderes Testframework, DUnitX (nicht DUnit), und daher nicht 1:1 übertragbar.

jsheyer 29. Nov 2023 08:52

AW: DUnit und Jenkins - Wie errorcode auswerten
 
Zitat:

Zitat von mjustin (Beitrag 1530203)
Zitat:

Zitat von jsheyer (Beitrag 1530201)
Ich habe das bei mir so konfigueriert:
...
Damit werden die einzelnen Testergebnisse auch sauber in Jenkins dargestellt.

Das ist aber ein anderes Testframework, DUnitX (nicht DUnit), und daher nicht 1:1 übertragbar.


Da hast du natürlich Recht, wie das bei Dunit ist weiß ich leider auch nicht.

Harry Stahl 29. Nov 2023 15:42

AW: DUnit und Jenkins - Wie errorcode auswerten
 
Zitat:

Zitat von mjustin (Beitrag 1530203)
Zitat:

Zitat von jsheyer (Beitrag 1530201)
Ich habe das bei mir so konfigueriert:
...
Damit werden die einzelnen Testergebnisse auch sauber in Jenkins dargestellt.

Das ist aber ein anderes Testframework, DUnitX (nicht DUnit), und daher nicht 1:1 übertragbar.

Ja, genau, wie Eingangs erwähnt DUnit und nicht DUnitX.

Für DUnit gibt es offenbar keine Logger-unit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz