У меня есть проект Maven для Selenium Automation.Я программно выполняю контрольные примеры.Я создал класс DynamicSuiteHelper.java
для динамического создания своего пакета.Когда я запускаю это из Eclipse IDE, оно выполняется как положено.Теперь я хочу выполнить этот код с помощью Maven.
Итак, сначала я сделал mvn clean install
.И затем, когда я запустил файл Automation.jar, он начал выполнение, но результаты показывают, что было выполнено 0 тестов.Поэтому я вернулся в выходную папку, которая показала, что файл набора был создан и создан так, как я планировал.
Я использую три плагина:
1) maven-surefire:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
2) maven-компилятор:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<fork>true</fork>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Xlint:all,-options,-path</arg>
</compilerArgs>
</configuration>
</plugin>
3)maven-shade: (для создания исполняемых jar-файлов)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.project.automation.tests.DynamicSuiteHelper</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Также тестовые классы находятся в том же пакете, что и класс DynamicSuiteHelper.java.
Фрагмент кода для класса DynamicSuiteHelper:
TestNG dynamicTestNG = new TestNG();
XmlSuite dynamicSuite = new XmlSuite();
List<XmlTest> listOfTests = new ArrayList<XmlTest>();
XmlTest dynamicTest = new XmlTest(dynamicSuite);
List<XmlClass> listOfClasses = new ArrayList<XmlClass>();
listOfClasses.add(new XmlClass("com.project.automation.tests.test1.Test1Class1"));
listOfClasses.add(new XmlClass("com.project.automation.tests.test1.Test1Class2"));
listOfClasses.add(new XmlClass("com.project.automation.tests.test2.Test2Class1"));
listOfClasses.add(new XmlClass("com.project.automation.tests.test2.Test2Class1"));
dynamicTest.setClasses(listOfClasses );
listOfTests.add(dynamicTest);
dynamicSuite.setTests(listOfTests);
List<XmlSuite> listOfSuites = new ArrayList<XmlSuite>();
listOfSuites.add(dynamicSuite);
dynamicTestNG.setXmlSuites(listOfSuites);
dynamicTestNG.run();
Также структура проекта выглядит следующим образом:
project
|--automation
|--tests
|--test1
|--Test1Class1.java
|--Test1Class2.java
|--test2
|--Test2Class1.java
|--Test2Class2.java
|--BaseTest.java
|--DynamicSuiteHelper.java
Любая помощь приветствуется.