2016-06-28 34 views
0

Wenn ich nur die Parameter extrahiere, gehen die Tests richtig durch Wenn ich versuche Parameter zu manipulieren, geht alles schief RunTimeException! Hilfe, um zu verstehen, was falsch ist !!testNG @BeforeMethod Verwendung See-Param ITestResult-Extrakt mit Parametern;

@BeforeMethod 
    public void beforeMethodBlock(ITestResult result){ 
     ReportGenerator.add(result.getParameters());  
    } 
public class ReportGenerator { 
    private static Object[][] testData= new Object[50][2]; 
    private static Integer index; 
    public static void add(Object[] data){ 
     testData[index++]=data; 

    } 
} 
+1

Könnten Sie die vollständige Stacktrace der Ausnahme teilen? – juherr

+0

Wenn ich nur Parameter in Add-Methode drucke Das Programm fehlschlagen !! – Artur

+0

java.lang.RuntimeException – Artur

Antwort

0

Es sieht Ihre index Variable nie initialisiert und wie Sie Integer statt int verwenden (warum?!) Ist der Standardwert null.

Verwenden Sie einfach int und initialisieren Sie es.

+0

Problem ist nicht in int Wenn ich nur drucke ("" + Daten [0]) es schief gehen Ich habe den Eindruck, dass es unmöglich ist, einige Anweisungen in der Klasse mit BeforeMethod Annotation und in Listener schreiben! libs – Artur

+0

Nach dem Quellcode hat das Testergebnis keinen Status, was nicht passieren soll. Wenn Sie Test 6.9.12 verwenden, könnten Sie ein Problem auf GitHub öffnen? – juherr

+0

int statt Integer funktioniert! aber wenn ich System.out.println schreibe ("" + data [0]); geht schief. – Artur

0
  • Vorbearbeitungsmethode in testng Parameter von ITestContext haben
  • Nach Methode kann Parameter von ItestResult haben

Wenn Sie den Namen des Testmethod erhalten, die als nächstes ausgeführt werden soll, die getan werden kann, von Methode (java.lang.reflect.Method) Objekt.

@BeforeMethod public void beforeMethod(Method m) { System.out.println(m.getName()); }
oder
@BeforeMethod public void beforeMethod(ItestContext testContext) { // Do testContext related processing }

Referenz: -
How do I get the name of the test method that was run in a testng tear down method?