Zur Info: 

      • Der HealthReport hängt an der an der ResultAction --> eine eigene Methode, die die ResultAction zurück gibt. 
      • Tests in IssuesRecoderITest hinzufügen 

       

      Was soll im Integrationstest getestet werden

      1. Über die API HealthThreshold und HealthPriorities geeignet setzten (Grenzen dabei besonders betrachten) und erwartetes Icon und Description herstellen 

       

       

       

       

          [JENKINS-50092] Integration Test for HealthReport

          Was habe ich bis jetzt getestet: 

          1. Health === Unhealth --> empty HealthReport (EqualBoundaries)
          2. Health > Unhelath --> empty HealthReport (BoundaryMismatch)
          3. Für jede Art von Icon wurde ein Test geschrieben (insgesamt 5 verschiedene Fälle) 

          Dabei wurde die Priotität der Issues erst mal ignoriert, da nicht genau klar ist welche Issues welche Prorität haben. 

          Zudem werden bis jetzt nur einzele Builds auf ihren HealthReport getestet, soll auch ein aggregierter Test vohranden sein? Indem mehrere Builds hintereinander unterschieldiche Heath-Ergebnisse liefern um dann das aggregierte HealthReport-Ergebnis zu überprüfen? 

          Alexandra Wenzel added a comment - Was habe ich bis jetzt getestet:  Health === Unhealth --> empty HealthReport (EqualBoundaries) Health > Unhelath --> empty HealthReport (BoundaryMismatch) Für jede Art von Icon wurde ein Test geschrieben (insgesamt 5 verschiedene Fälle)  Dabei wurde die Priotität der Issues erst mal ignoriert, da nicht genau klar ist welche Issues welche Prorität haben.  Zudem werden bis jetzt nur einzele Builds auf ihren HealthReport getestet, soll auch ein aggregierter Test vohranden sein? Indem mehrere Builds hintereinander unterschieldiche Heath-Ergebnisse liefern um dann das aggregierte HealthReport-Ergebnis zu überprüfen? 

          Ulli Hafner added a comment - - edited

          Aggregierte Builds sind nicht erforderlich: diese Funktionalität kommt von einer Funktionalität außerhalb meiner Plugins.

          Die drei Varianten der Prioritäten wäre noch schön (jeweils ein Test). Welches Tool/Parser nutzen Sie in den Tests? Für Checkstyle kann man die drei Prioritäten folgendermaßen setzen:

          <?xml version="1.0" encoding="UTF-8"?>
          <checkstyle version="4.1">
          <file name="X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\util\model\package.html">
          <error line="0" severity="error" message="Fehlende Package-Dokumentation." source="com.puppycrawl.tools.checkstyle.checks.javadoc.PackageHtmlCheck"/>
          </file>
          <file name="X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\parser\CsharpNamespaceDetector.java">
          </file>
          <file name="X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\parser\CsharpNamespaceDetector.java">
          <error line="17" column="5" severity="error" message="Die Methode &apos;accepts&apos; ist nicht für Vererbung entworfen - muss abstract, final oder leer sein." source="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck"/>
          <error line="42" severity="error" message="Zeile länger als 80 Zeichen" source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
          <error line="22" column="5" severity="error" message="Die Methode &apos;detectPackageName&apos; ist nicht fr Vererbung entworfen - muss abstract, final oder leer sein." source="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck"/>
          <error line="29" severity="error" message="Zeile länger als 80 Zeichen" source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
          <error line="30" column="21" severity="error" message="&apos;}&apos; sollte in derselben Zeile stehen." source="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck"/>
          <error line="37" column="9" severity="error" message="&apos;}&apos; sollte in derselben Zeile stehen." source="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck"/>
          </file>
          </checkstyle>
          

          Dabei wird zugeordnet:

          • severity="error" : Hohe Priorität
          • severity="warning" : Normale Priorität
          • severity="info" : Niedrige Priorität

          Diese Datei können Sie ja als Basis nutzen und entsprechend anpassen.

          Ulli Hafner added a comment - - edited Aggregierte Builds sind nicht erforderlich: diese Funktionalität kommt von einer Funktionalität außerhalb meiner Plugins. Die drei Varianten der Prioritäten wäre noch schön (jeweils ein Test). Welches Tool/Parser nutzen Sie in den Tests? Für Checkstyle kann man die drei Prioritäten folgendermaßen setzen: <?xml version= "1.0" encoding= "UTF-8" ?> <checkstyle version= "4.1" > <file name= "X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\util\model\ package .html" > <error line= "0" severity= "error" message= "Fehlende Package-Dokumentation." source= "com.puppycrawl.tools.checkstyle.checks.javadoc.PackageHtmlCheck" /> </file> <file name= "X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\parser\CsharpNamespaceDetector.java" > </file> <file name= "X:\Build\Results\jobs\Maven\workspace\tasks\src\main\java\hudson\plugins\tasks\parser\CsharpNamespaceDetector.java" > <error line= "17" column= "5" severity= "error" message= "Die Methode &apos;accepts&apos; ist nicht für Vererbung entworfen - muss abstract , final oder leer sein." source= "com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck" /> <error line= "42" severity= "error" message= "Zeile länger als 80 Zeichen" source= "com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck" /> <error line= "22" column= "5" severity= "error" message= "Die Methode &apos;detectPackageName&apos; ist nicht fr Vererbung entworfen - muss abstract , final oder leer sein." source= "com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck" /> <error line= "29" severity= "error" message= "Zeile länger als 80 Zeichen" source= "com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck" /> <error line= "30" column= "21" severity= "error" message= "&apos;}&apos; sollte in derselben Zeile stehen." source= "com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck" /> <error line= "37" column= "9" severity= "error" message= "&apos;}&apos; sollte in derselben Zeile stehen." source= "com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck" /> </file> </checkstyle> Dabei wird zugeordnet: severity="error" : Hohe Priorität severity="warning" : Normale Priorität severity="info" : Niedrige Priorität Diese Datei können Sie ja als Basis nutzen und entsprechend anpassen.

          Alexandra Wenzel added a comment - - edited

          Für bereits vorhandenen Tests nutze ich das eclipse.txt. Muss ich das Tool/Parser sonst noch iwo initalisieren? Ich habe das file bis jetzt immer der

          createJobWithWorkplaceFile

          Mehtode übergeben. Für Checkstyle funktioniert das aber leider nicht. Da bekomme ich nicht den erwarteten Output auch wenn ich das checkstyle.xml geeignet anpasse. 

           

          UPDATE

          ich kann auch das eclipse file verwenden indem ich die die Schlagwort 

          WARNING = low / normal 

          ERRO = high

          verwende. 

          Alexandra Wenzel added a comment - - edited Für bereits vorhandenen Tests nutze ich das eclipse.txt. Muss ich das Tool/Parser sonst noch iwo initalisieren? Ich habe das file bis jetzt immer der createJobWithWorkplaceFile Mehtode übergeben. Für Checkstyle funktioniert das aber leider nicht. Da bekomme ich nicht den erwarteten Output auch wenn ich das checkstyle.xml geeignet anpasse.    UPDATE :  ich kann auch das eclipse file verwenden indem ich die die Schlagwort  WARNING = low / normal  ERRO = high verwende. 

          Ulli Hafner added a comment -

          Andere Parser lassen sich durch Anpassen des Aufrufs

          publisher.setTools(Collections.singletonList(new ToolConfiguration("**/*issues.txt", new Eclipse())));
          

          auswählen. Statt new Eclipse() einfach new CheckStyle() verwenden. Am besten das Tool als Parameter in die Methode enableWarnings reinnehmen.

          Oder alternativ mit Eclipse und dem Verfahren vom letzten Kommentar weiterarbeiten.

          Ulli Hafner added a comment - Andere Parser lassen sich durch Anpassen des Aufrufs publisher.setTools(Collections.singletonList( new ToolConfiguration( "**/*issues.txt" , new Eclipse()))); auswählen. Statt new Eclipse() einfach new CheckStyle() verwenden. Am besten das Tool als Parameter in die Methode enableWarnings reinnehmen. Oder alternativ mit Eclipse und dem Verfahren vom letzten Kommentar weiterarbeiten.

            loelala Alexandra Wenzel
            drulli Ulli Hafner
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: