This is a test message to test the length of the message box.
Login
ABAP Unit Testausführung
Erstellt von Software-Heroes

ABAP Unit - Testausführung

157

Welche Möglichkeiten gibt es zur Ausführung von ABAP Unit und welche versteckten Funktionen kennst du vielleicht noch nicht? Mehr Details zu den verschiedenen Modi in diesem Artikel.

Werbung


Nachdem du deine Unit Tests geschrieben hast, geht es um die Ausführung der Tests und die Validierung des Ergebnisses. In diesem Artikel schauen wir uns einmal genauer an, wie du die Tests ausführen kannst und welche versteckten Funktionen es weiterhin gibt, um dir deine Tests einfacher zu machen.

 

Einleitung

Egal ob du per Test Driven Development (TDD) deine Unit Tests als erstes anlegst oder im Nachhinein deinen Code mit Unit Tests vervollständigst, am Ende geht es immer darum auch die Tests auszuführen und ein Ergebnis zu erhalten. Dazu stehen dir die verschiedenen Startoptionen zur Verfügung. Letzte Woche hatten wir dir die Quick Action vorgestellt und uns angeschaut, wie dieser deine Entwicklung beschleunigen kann. Die ABAP Quick Actions stehen allerdings aktuell nicht in älteren Releases zur Verfügung, allerdings gibt es eine Alternative, die wir in diesem Artikel ansprechen wollen.

 

Vorbereitung

Wir erweitern daher unser Beispiel von letzter Woche um eine zusätzliche Testklasse die wie folgt aussieht. Die Besonderheit ist hier, dass die Klasse ein hohes Risikolevel hat und die Ausführungszeit lang dauert, da wir hier mehr Aktionen ausführen.

CLASS ltc_low_runner DEFINITION FINAL
  FOR TESTING RISK LEVEL CRITICAL DURATION LONG.

  PRIVATE SECTION.
    METHODS run_more_tests FOR TESTING RAISING cx_static_check.
ENDCLASS.


CLASS ltc_low_runner IMPLEMENTATION.
  METHOD run_more_tests.
    DATA(lo_cut) = NEW zcl_bs_demo_quick_actions( ).

    DO 500 TIMES.
      DATA(ld_number) = sy-index.
      DATA(ld_expectation) = ld_number + ld_number.

      DATA(ld_result) = lo_cut->adding_numbers( id_number1 = ld_number
                                                id_number2 = ld_number ).

      cl_abap_unit_assert=>assert_equals( exp = ld_expectation
                                          act = ld_result ).

    ENDDO.
  ENDMETHOD.
ENDCLASS.

 

Möglichkeiten

Schauen wir uns einmal die Möglichkeiten über die "Run As" Option an, dort stehen uns zwei Möglichkeiten zur Verfügung. Deshalb wollen wir uns alle Möglichkeiten im Nachgang anschauen.

 

Preview

Wenn du den Preview (STRG + SHIFT + F9) aufrufst, dann werden nur alle Unit Tests des Objekts oder aller selektierten Objekte angezeigt. In diesem Modus erfolgt keine Ausführung, du kannst dir hier aber schon einmal einen Überblick über die vorhandenen Tests schaffen.

 

Möchtest du nur eine Testmethode ausführen, dann kannst du im Preview auch den entsprechenden Test/Methode wählen und findest weitere Optionen im Kontextmenü.

 

Ausführung

Bei der Ausführung (STRG + SHIFT + F10) werden alle Unit Tests gestartet und das Ergebnis angezeigt. Es erfolgt keine Eingrenzung der Methoden oder Tests. Allerdings werden die im System registrierten Grenzen eingehalten. In unserem Beispiel wurde die Testklasse mit "Critical" nicht ausgeführt und daneben finden wir eine Warnung.

 

Wie bereits beim Preview, besteht auch hier die Möglichkeit einzelne Testfälle per Kontextmenü zu starten. So musst du nicht alle Tests ausführen und kannst fehlerhafte Testfälle überprüfen.

 

Coverage

Die Coverage Analyse (STRG + SHIFT + F11) startet alle Unit Tests am Objekt und führt eine Abdeckungsmessung durch. Im Anschluss bekommst du das Ergebnis, wieviel deines Codes mit ABAP Unit Tests abgedeckt ist und auch das Ergebnis der Unit Tests.

 

Konfiguration

Über die Konfiguration (STRG + SHIFT + F12) kannst du die Ausführung oder den Preview noch steuern. Im ersten Schritt erhältst du ein Popup, auf dem du die verschiedenen Metriken einstellen kannst. Gleichzeitig gibt es auch die Möglichkeit einen Trace für den Unit Test zu starten.

 

Versuchst du allerdings auch hier die Grenzen der Systemeinstellung zu überschreiten, erhältst du eine Warnmeldung und der "Execute" Button ist nicht mehr aktiv. Damit ist nur noch der Preview der Testfälle möglich.

 

Fazit

Über den Preview und die Ausführung einzelner Tests über das Kontextmenü kannst du die Quick Actions in ADT ebenfalls nutzen, zwar etwas langsamer, aber trotzdem möglich. Neben der Ausführung der Abdeckungsmessung, könnte auch ein Trace sehr interessant sein.


Enthaltene Themen:
ABAP UnitABAPUnit TestsTestausführung
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Unit - Automatisierung

Kategorie - ABAP

Wann gehen in der Entwicklung Objekte kaputt und welche Seiteneffekte können Anpassungen haben? In diesem Artikel schauen wir uns das Thema einmal näher an.

05.01.2024

ABAP Unit - TDF (Function Double)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal an, wie wir mit Funktionsbausteinen als Abhängigkeit umgehen können, ohne diese mitzutesten.

07.04.2023

RAP - ABAP Unit (Service)

Kategorie - ABAP

Wie testet man den Service einer Schnittstelle oder RAP App eigentlich automatisch? In diesem Artikel schauen wir uns Unit Tests für OData Services an.

20.01.2023

RAP - ABAP Unit (Business Objekt)

Kategorie - ABAP

An dieser Stelle schauen wir uns einmal an, wie wir unser RAP Business Objekt automatisch testen können, um so alle wichtigen Funktionen per Knopfdruck zu prüfen.

13.01.2023

ABAP Unit - Tipps

Kategorie - ABAP

Zum Abschluss der Serie noch ein paar Tipps die wir dir mit auf den Weg geben wollen. Hier geht es um Shortcuts und allgemeine Hinweise zu den Tests.

12.11.2021