Selenium - Maven / TestNG: Как добавить «testng.xml» и путь log4j2.xml в pom.xml, чтобы исполняемый файл .jar можно было запускать и на другом компьютере? - PullRequest
1 голос
/ 29 мая 2019

Я работаю с Maven / TestNG / Log4j2.

Наша цель - создать исполняемый файл .jar, который будет запускать testng.xml через файл pom.xml.

Так что сейчас я могу создать исполняемый файл .jar и успешно запустить его и на моей машине. Но когда я пытаюсь запустить тот же файл .jar на другом компьютере, он выдает «Filenotfoundexception», когда пытается получить доступ к testng.xml и log4j2.xml по моему локальному пути.

Кроме того, исполняемый файл .Jar содержит только файлы testng.xml и log4j2.xml только на корневом уровне.

Вот моя структура проекта:

project

Я использовал «сборку maven, верные плагины, плагины компилятора» и тег ресурсов для XML-файлов.

Вот так выглядит моя сборка:

<build>
<sourceDirectory>src</sourceDirectory>
 <plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.7.0</version>
     <configuration>
      <release>10</release>
     </configuration>
  </plugin>
  <plugin>           
   <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.1</version>
    <executions>
     <execution>
      <id>make-assembly</id>
    <!-- bind to the packaging phase -->
      <phase>package</phase>
      <goals>
       <goal>single</goal>
      </goals>
      <configuration>
    <!-- get all project dependencies -->
       <descriptorRefs>                          
        <descriptorRef>jar-with-dependencies</descriptorRef>                         
       </descriptorRefs>                         
        <!-- MainClass in mainfest make a executable jar -->                         
       <archive>
       <manifest>                                
        <mainClass>test.FirstTest</mainClass>                            
       </manifest>
       </archive>
     </configuration>
    </execution>
   </executions>
  </plugin>
  <plugin>               
   <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
     <version>3.0.0-M3</version>
      <configuration>
       <suiteXmlFiles>                   
      <suiteXmlFile>.//src/main/java/resources/testng.xml</suiteXmlFile>
       </suiteXmlFiles>
      </configuration>
   </plugin>
  </plugins>
 <resources>
  <resource>                 
   <directory>src/main/java/resources</directory>
    <includes>
     <include>*.xml</include>
    </includes>
   </resource>
  </resources>
</build>

А вот так выглядит мой основной метод testNG:

public static void main(String[] args) {
 TestNG testng = new TestNG();
 List<String> suites = Lists.newArrayList();
 suites.add(".//src/main/java/resources/testng.xml");
 testng.setTestSuites(suites);
 testng.run();
}

Мы стремимся создать исполняемый файл .jar в комплекте с testng.xml и log4j2.xml. Так что мы можем поделиться этим и с другими командами.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

1 голос
/ 29 мая 2019

Очень просто включать и исключать файлы в процессе сборки. Ниже приведен фрагмент кода, который вы поймете.

<build>
        <resources>
          <resource>
            <directory>src/resources</directory>
<!-- To include the files -->
             <includes>
                 <include>**/*.properties</include>
                 <include>**/*.xml</include>
            </includes>
<!-- To exclude -->
            <excludes>
              <exclude>**/*.jpeg</exclude>
              <exclude>**/*.gif</exclude>
            </excludes>
          </resource>
    </resources>
.....
.....
</build>

Чтобы создать исполняемый файл JAR, обратитесь к очень простому и небольшому проекту в github.

https://github.com/debjava/runnableJar

...