Как использовать ведение журнала log4j2 в автоматизации селена для общих классов во время параллельного выполнения теста - PullRequest
0 голосов
/ 06 февраля 2019

Я добавляю поддержку log4j2 в мою среду выполнения теста.Мои тесты выполняются параллельно, и я создаю отдельный файл журнала для каждого тестового класса.Но есть некоторые общие классы, которые используются всеми моими тестовыми классами и также записывают в файл журнала, но я хочу, чтобы эти журналы были добавлены в файлы журналов определенного тестового класса.

Я попытался передать объект регистратора вобщий класс и работать над ним, но это не выглядит хорошо, так как у меня будет много методов в общем классе, и я не хочу передавать объект регистратора при каждом вызове функции.

Чтобы уточнить, вот примердиаграмма для того же:

       BaseClass.java
      | inheritance |
Class A           Class B
(a.log)           (b.log)

Класс A и класс B наследуют некоторые функции от BaseClass.ClassA имеет свой собственный регистратор, а ClassB - свой.Когда я вызываю некоторые функции из BaseClass, я хочу, чтобы журналы продолжались в соответствующем файле журнала.Также обратите внимание, что оба теста будут выполняться параллельно.

public class A extends BaseClass{
   Logger log = LogManager.getLogger("ClassA");

   @test
   public void testA1(){
     log.info("Into Class A");
     executeDummyFunc(log);
   }
}

public class B extends BaseClass{
   Logger log = LogManager.getLogger("ClassB");

   @test
   public void testB1(){
     log.info("Into Class B");
     executeDummyFunc(log);
   }
}

public class BaseClass{

   public void executeDummyFunc(Logger log){
     log.info("Into Base Class");
   }
}

a.log:
 Into Class A
 Into Base Class
b.log
 Into Class B
 Into Base Class

Как можно добиться одинаковых результатов, не передавая объект "log" каждой функции BaseClass.

Извинитеесли это основной вопрос, так как я новичок в Java.

Спасибо!

...