Как получить доступ к выходному каталогу теста, который использует Reporter из ITestListener

Мы используем метод generateReport() IReporter для создания пользовательского отчета. В начале выполнения необходимо удалить файл отчета, если он существует.

Причина, по которой мы должны сделать это, заключается в том, что мы используем SkipException внутри метода onStart() ITestListener — нам нужно потерпеть неудачу/остановить тестовый запуск, если возникают определенные исключения. Если это происходит, то generateReport() никогда не вызывается, оставляя существующий пользовательский отчет на месте, часто создавая путаницу.

Как получить доступ к тому же outputDirectory, который используется в generateReport (), из ITestListener? I can get Itestcontext’s outputDirectory, but that leads me to a subfolder of 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);
    }
}

1 ответ

  1. Я нашел одно решение, это работает для меня:

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