Maven-surefire-plugin не может загрузить мой suiteXmlFile
Maven-surefire-plugin не может загрузить мой suiteXmlFile. Возвращаемое значение 'willUsePorts' и 'deviceInfos' просто равно нулю. Пожалуйста, дайте мне знать, что не так.
Ниже мой pom.xml и структура. (моя структура: ptas / src / test / suite / AppiumTestSuite.xml)
Моя структура: ptas / src / test / suite / AppiumTestSuite.xml
<modelVersion>4.0.0</modelVersion>
<groupId>com.netmarble</groupId>
<artifactId>ptas</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ptas</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<suiteXmlFiles>
<suiteXmlFile>src/test/suite/AppiumTestSuite.xml</suiteXmlFile>
</suiteXmlFiles>
<systemProperties>
<property>
<name>method</name>
<value>${method}</value>
</property>
<property>
<name>willUsePorts</name>
<value>${willUsePorts}</value>
</property>
<property>
<name>deviceInfos</name>
<value>${deviceInfos}</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
</project>
1 ответ
Проблема не имеет ничего общего с TestNG или вашим комплектом XML-файла.
Вы в основном настраиваете плагин surefire для установки некоторых аргументов JVM (через системные свойства). Но значения этих аргументов JVM называются свойствами (так как вы использовали ${willUsePorts}
а также ${deviceInfos}
).
Таким образом, Maven будет пытаться найти запись под <properties>
раздел вашего pom.xml
называется <willUsePorts>
а также <deviceInfos>
соответственно. Поскольку в вашем файле pom таких значений не определено, значения этих двух аргументов JVM устанавливаются как null
,
Чтобы пройти вашу проблему, вы должны либо пройти -DwillUsePorts
а также -DdeviceInfos
из командной строки при запуске mvn test
или вы должны добавить соответствующие свойства под <properties>
раздел, как указано выше.