Ошибка при печати Arraylist с использованием ExtentReports - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь распечатать Array-list, используя отчеты по экстентам. Но это дает мне ошибку «Журнал метода (LogStatus, Throwable) в типе ExtentTest не применим для аргументов (LogStatus, ArrayList)»

Я пытаюсь распечатать список массивов b с использованием отчетов по экстентам. Но это дает мне ошибку «Журнал метода (LogStatus, Throwable) в типе ExtentTest не применим для аргументов (LogStatus, ArrayList)»

Ниже приведен мой код, и я получаю сообщение об ошибке "Listeners.test.log (b);" здесь

import org.testng.annotations.BeforeMethod;
import pages.tablepage;
import utilities.Base;
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;

public class Store extends Base{

        @BeforeMethod
        public void initialize() throws IOException {
            driver = initializeDriver();
            Log.info("Driver is initialized");
            driver.get(prop.getProperty("url3"));
        }
        @Test
        public void Sorting() {

            //constructor from Page Object
            tablepage P = new tablepage(driver);

            //page numbers
            int c =  P.page().size();

            //defining lists
            ArrayList<String> b = new ArrayList<String>();

            //Storing values to a List
            for (int i=1;i<=c;i++) {
               int s = P.name().size();
               for(int j=0;j<s;j++) {
               b.add(P.name().get(j).getText());
              }
              if(i<c) {
                 P.page().get(i).click();
                }
            }

            Listeners.test.log(LogStatus.INFO,"---List---" + c); //this prints fine

            Listeners.test.log(b); //this is not working

}
}

Я хочу напечатать

--- Список --- 4

[Младший технический автор, главный исполнительный директор (CEO), бухгалтер, инженер-программист, инженер-программист, специалист по интеграции, разработчик Javascript, старший разработчик Javascript, региональный директор, предпродажная поддержка, ведущий персонал, ассистент по продажам, главный операционный директор (COO), разработчик, системный администратор, бухгалтер, ассистент по продажам, старший дизайнер по маркетингу, руководитель отдела разработки, региональный директор, офис-менеджер, специалист по интеграции, дизайнер по маркетингу, финансовый директор (CFO), руководитель службы поддержки, специалист по интеграции, разработчик, инженер-программист , Региональный маркетинг, региональный директор, системный архитектор, директор по маркетингу (CMO)]

Но теперь это просто напечатать: --- Список --- 4

Вот мой файл Слушателей:

import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;

public class Listeners implements ITestListener {

     protected static WebDriver driver;
     protected static ExtentReports reports;
     public static ExtentTest test;
     Base B = new Base();

    public void onTestStart(ITestResult result) {
         System.out.println("Test Started");
          test = reports.startTest(result.getMethod().getMethodName());

         }


    public void onTestSuccess(ITestResult result) {
        System.out.println("Test Success\n");

         }

    public void onTestFailure(ITestResult result) {
        System.out.println("Test Failed\n");
          test.log(LogStatus.FAIL, result.getMethod().getMethodName() + " test failed");
          try {

            //getScreenshot();
}

    public void onStart(ITestContext context) {
          driver = new ChromeDriver(); 
          reports = new ExtentReports(""Extentreports.html");       
    }

    public void onFinish(ITestContext context) {

          reports.flush();

    }

}

Ответы [ 2 ]

0 голосов
/ 25 января 2019

@ ShehNathMishra помогла мне понять, что ArrayList не может быть аргументом для отчетов по экстентам.

Преобразование Arraylist в построитель строк, а затем в строку помогло.Ниже приведен фиксированный код:

 StringBuilder sb = new StringBuilder(); 
            for (String s : b)
            {
                sb.append(s);
                sb.append("\t");
            }

            //Sorting the list
            Listeners.test.log(LogStatus.INFO,"--- List---");
            Listeners.test.log(LogStatus.INFO,sb.toString());
0 голосов
/ 24 января 2019

Мне не удалось найти достаточно информации о проблеме из вопроса, и у меня недостаточно репутации для добавления комментариев.

Не могли бы вы предоставить более подробную информацию о Listeners.test?

Исходя из приведенного выше уровня информации, попробуйте Listeners.test.log(LogStatus.INFO, b.toString()), поскольку я вижу, что есть метод журнала, который принимает строку в качестве второго аргумента..

...