Stworzyłem program uruchamiający testy, który tworzy dynamiczny plik testng xml, dzięki czemu mogę uruchamiać testy z parametrami. Wszystkie metody @Test znajdują się w odpowiedniej klasie (na przykład LoginTest.class). Działa idealnie z IDE, ale z Mavenem (test mvn) po prostu wypisuje BUDOWA SUKCESU, ale nie uruchamia żadnego testu…

Maven-surefire-plugin w POM.xml:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>3.0.0-M3</version>
  <configuration>
<environmentVariables>
  <suite>LoginTest</suite>
</environmentVariables>
     <includes>
        <include>src/test/java/runner/TestRunner.java</include>
     </includes>
  </configuration>
</plugin>

Moja klasa TestRunner:

public class TestRunner {

   public static void main(String[] args) {
       XmlSuite suite = new XmlSuite();
       suite.setName("D-Web");
       suite.setThreadCount(1);
       suite.setVerbose(1);
       //suite.setParallel("tests");
       suite.addListener("com.app.listeners.ReportListeners");

       XmlTest test = new XmlTest(suite);
       test.setName("Tests");
       test.setPreserveOrder(true);

       XmlClass testClass = getTestClass();

       List<XmlClass> classes = new ArrayList<>();
       classes.add(testClass);
       test.setXmlClasses(classes);

       TestNG testng = new TestNG();
       List<XmlSuite> suites = new ArrayList<>();
       suites.add(suite);

       testng.setXmlSuites(suites);
       testng.run();
   }

   public static XmlClass getTestClass() {
       switch (System.getenv("suite")) {
           case "LoginTest":
           default:
               return new XmlClass(LoginTest.class);
           case "PurchaseFunnelTest":
               return new XmlClass(PurchaseFunnelTest.class);
           case "QuestionnaireTests":
               return new XmlClass(QuestionnaireTest.class);
       }
   }
}

Moja klasa LoginTest:

public class LoginTest {

   @Test
   public void test1() {
            System.out.println("Test 1 is running...");
        }
}
3
Shayday 20 listopad 2019, 13:36

1 odpowiedź

Właśnie wypróbowałem Twój projekt i działa on z polecenia mvn test . Skąd uruchamiasz komendę maven? Po prostu przejdź do katalogu projektu, w którym znajduje się pom.xml i uruchom polecenie, powinno działać dobrze. Dodałem również twoją klasę LoginTest w pakiecie runner wraz z twoją klasą TestRunner i działa dobrze z IDE, jak również z linią poleceń.

Przetestuj ponownie i daj mi znać.

0
dangi13 21 listopad 2019, 13:27
Cześć, test nie działa. Uruchamiam go z katalogu mojego projektu, w którym znajduje się pom.xmi. to po prostu drukuje SUKCES BUDOWANIA: [INFO] SUKCES BUDOWANIA [INFO] ------------------------------------ ------------------------------------ [INFO] Całkowity czas: 1.081 s [INFO] Ukończono o: 2019-11-24T12:08:53+02:00 [INFO] ---------------------------------- ---------------------------------------
 – 
Shayday
24 listopad 2019, 13:15