TestNG - Funktionsparmeter ausgeben

Guten Tag.
Ich verwende zum Testen meines Codes TestNG und bin sehr zufrieden damit. Nun möchte ich jedoch meine Log - Ausgaben etwas erweitern. Dazu möchte ich nicht nur den Methoden Namen der Testmethoden ausgeben, sodern auch ihre Parameter. Den Methodennamen habe ich schon nun brauche ich noch die Parameter.
Das große Problem dabei ist sicher, dass ich ca 100 Testmethoden habe, die natürlich alle unterschiedliche Parameter haben. Ich habe schon an Reflection gedacht habe dazu aber zu wenig Erfahrung. Kann mir jemand helfen oder eine Anregung geben?

Vielen Dank
 
Ich denke gerade an JUnit und dort werden Parameter doch einfach an die Methode übergeben, und somit hast du die Parameter die du loggen kannst? Wie ist das in TestNG ?
 
Ich danke dir für deine schnelle Antwort.
Auch bei TestNG werden die Parameter an die Test funktion weitergegeben. Hier ein kleines Beispiel.
Java:
    @Test(dataProviderClass = CompetitionTestDataProvider.class, dataProvider = "competitionConstructorData")
    public void testCompetitionConstructor(String competitionName, String expectedExceptionText)

Ich könnte nun natürlich in jeder Funktion per Logging die Parameter und ihre Werte ausgeben, aber ich will lieber in einer Test Basis Klasse allgemein die Parameter ausgeben lassen,. So habe ich das für den Methoden Namen gemacht ;

Java:
    @BeforeMethod
    public void printTestCaseStart(Method testMethod) {
        log.info("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =");
        log.info(testMethod.getName());
        log.info("");
    }

    @AfterMethod
    public void printTestCaseEnd() {
        log.info("");
        log.info("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =");
        log.info("");
    }
 
Dann würde ich zuerst auch an reflection denken, da du die Method schon hast kannst du die Parameter ja relativ einfach abfragen 🙂

Dabei musst du die deklarierten Methoden mit deinem Methoden namen vergleichen und dann die Parameter der Methode ermitteln. Allerdings brauchst du dafür die Klasse.
 
Ja ich habe bisher eine abstracte Testklasse wo die beiden Methoden bereits enthalten sind, die Namen des Test ermitteln.

Kannst du mir evtl. für das Reflection etwas helfen
 

Zurück
Oben