2016-05-27 2 views
0

Wir verwenden IReporters generateReport() -Methode, um einen benutzerdefinierten Bericht zu erstellen. Zu Beginn eines Laufs müssen wir die Berichtsdatei löschen, falls sie existiert.Zugriff auf das Test-Output-Verzeichnis, das Reporter von ITestListener verwendet

Grund dafür ist, dass wir SkipException in der onStart() - Methode von ITestListener verwenden - wir müssen den Test ausführen, wenn bestimmte Ausnahmen ausgelöst werden. Wenn dies der Fall ist, wird generateReport() nie aufgerufen, wodurch der vorhandene benutzerdefinierte Bericht erstellt wird und häufig Verwirrung entsteht.

Wie kann ich auf dasselbe outputDirectory zugreifen, das in generateReport() von ITestListener verwendet wird? Ich kann ITestContext outputDirectory erhalten, aber das führt mich zu einem Unterordner von Reporter's outputDirectory.

public class CustomTestListener implements ITestListener { 

    @Override 
    public void onStart(ITestContext ctx) { 

     // This returns a child directory of the actual directory we want 
     // String outputDir = ctx.getOutputDirectory(); 

     // This is null, how would i access from ITestContext? 
     // XMLReporter x = new XMLReporter(); 
     // String outputDir = x.getOutputDirectory(); 

     // method that would delete the file 
     String reportFile = outputDir + "/" + GlobalConstants.REPORT_FILE; 
     deleteFile (reportFile); 
    } 
} 

Antwort

0

ich eine Lösung herausgefunden, das funktioniert für mich:

String outputDir = ctx.getOutputDirectory() + "/../" 
Verwandte Themen