ExtentReports: HtmlReporter не запускается при запуске исполняемого файла JAR, созданного с помощью maven-assembly-plugin - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь выполнить мои тестовые примеры программно, используя TestNG. Файл виртуального пакета работает нормально. Но отчет о протяженности не создается.

Получение следующей трассировки стека исключений:

java.lang.IllegalStateException: No reporters were started. Atleast 1 reporter must be started to create tests.
        at com.aventstack.extentreports.Report.createTest(Report.java:69)
        at com.aventstack.extentreports.ExtentReports.createTest(ExtentReports.java:241)
        at com.aventstack.extentreports.ExtentReports.createTest(ExtentReports.java:254)
        at com.automation.service.impl.ExtentReportService.setParentExtentTest(ExtentReportService.java:56)
        at com.automation.service.impl.ExtentReportService.startTest(ExtentReportService.java:64)
        at com.automation.tests.BaseTest.beforeMethod(BaseTest.java:160)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
        at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
        at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:455)
        at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:520)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:988)
        at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Сейчас я настроил свой отчет для генерации в следующем месте:

E:/selenium/reports/extent-reports/

И я сохраняю свои скриншоты в моей корневой папке с помощью строки: "./", которая в основном хранит скриншоты в E:.

Еще одно наблюдение:

  1. Я запустил mvn clean install -DskipTests=true из командной строки.

  2. После этого я переключился на целевую папку и выполнил следующую команду: java -jar jar-file-name.jar

  3. Похоже, что все тестовые случаи не выполняются из-за IllegalStateException, который он выдает.

  4. Но скриншоты были захвачены в папке target, которая технически должна храниться в корневом фодлере.

Я пытался изменить расположение отчета и снимков экрана. Также позвольте мне поделиться кодом, снятым с моего класса ExtentReportService:

private static void initializeExtentReport(Configuration config) {
        if (extent == null) {
            extent = new ExtentReports();
            htmlReporter = new ExtentHtmlReporter(getReportName(config));
            ClassLoader classLoader = ExtentReportService.class.getClassLoader();
            File extentConfigFile = new File(classLoader.getResource("extent-config.xml").getFile());
            htmlReporter.loadXMLConfig(extentConfigFile);
            extent.attachReporter(htmlReporter);
            extent.setSystemInfo("Environment", config.getAutomationServer());
        }
    }

Заранее спасибо за усилия.

1 Ответ

0 голосов
/ 20 ноября 2018

Эта проблема была исправлена ​​с другой проблемой, с которой я столкнулся.

Итак, главной проблемой, с которой я столкнулся, была загрузка файла extent-config.xml. Таким образом, я изменил место для загрузки файла extent-config.xml следующим образом:

File extentConfigFile = new File(classLoader.getResource("extent-config.xml").getFile());

до

File extentConfigFile = new File("./classes/extent-config.xml");

Таким образом, тестовые случаи будут выполняться гладко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...