Wie nennen testng.xml Datei aus pom.xml in Maven
Bin ich mit Selenium WebDriver, Eclipse, TestNG und das Surefire plugin. Ich bin nicht in der Lage zu laufen testng.xml Datei aus pom.xml. Während ich gelaufen bin pom.xml mit mvn test es direkt ausführen der Datei, die in den src/test/java.
meine pom.xml code ist
<groupId>angel</groupId>
<artifactId>Angel</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Angel</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
<dependencies>
<!-- Java API to access the Client Driver Protocols -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.21.0</version>
</dependency>
<!-- JExcel API is a java library which provides the ability to read, write, and modify Microsoft Excel spreadsheets.-->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.10</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- Java API for manipulate the Microsoft Excel Sheets. -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-contrib</artifactId>
<version>3.5-beta5</version>
</dependency>
<!-- Java Mail API used to send Mails. --> <dependency> <groupId>javax.mail</groupId>
<artifactId>mail</artifactId> <version>1.4.3</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugin</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration> </plugin>
</plugins>
</project>
Bitte helfen Sie mir.
Meine Projekt-Struktur ist
project
--src/main/java
--src/main/resources
--src/test/java
|
--my testng class file with @Test method.
--src/test/resources
|
--testng.xml
--maven dependencies
--jre system library
--src
|
--main
--test
--target
pom.xml
-- =>Ordner-Namen
|-- =>sub-Ordner-Namen
Meine testng.xml Datei ist...
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite1" verbose="1" >
<test name="samplePage Test" >
<classes>
<class name="TestScripts.SamplePage" >
<methods>
<include name = "SamplePageTest_Execution"/>
</methods>
</class>
</classes>
</test>
<test name="newSamplePage Test" >
<classes>
<class name="TestScripts.NewSamplePage" >
<methods>
<include name = "NewSamplePage_Execution02"/>
</methods>
</class>
</classes>
</test>
</suite>
wollte ich nur nennen die SamplePage_Execution Methode aus pom.xml durch testng.xml Datei.
Meine SamplePage_Execution Methode ist
public class sample{
@Test
public static void SamplePageTest_Execution() throws Exception{
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
boolean testStatus = true;
driver = new FirefoxDriver();
driver.get("http://www.google.com");
WebElement searchField = driver.findElement(By.name("q"));
searchField.sendKeys(new String [] {"selenium2.0"});
searchField.submit();
driver.close();
}}
- Mein folgender code funktioniert nicht: <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </Konfiguration> Den code unten geklappt: <configuration> <enthält> <include>**/*ST.java</include> </includes> </Konfiguration> Hinweis: Meine selenium-java-code, der name ist: Selenium2ExampleST.java
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine folgenden code in pom.xml funktioniert gut:
Führen Sie den test durch, indem Sie mit dem folgenden Befehl:
ODER,
Sollten Sie ändern suiteXmlFile von einer Klasse in eine Datei statt zum Beispiel testng.xml die Datei befindet sich im Verzeichnis src/test/resources. Darüber hinaus aktualisieren Sie die surefire-plugin (aktuelle version 2.12). Eine andere Sache ist, dass selenium tests sind in der Regel die integration von tests und nicht von unit-tests.
Update
Sie haben zum hinzufügen von testng Abhängigkeit anstatt der junit-Abhängigkeit. So entfernen Sie die junit-Abhängigkeit und fügen Sie den testng Abhängigkeit entsprechend der Dokumentation der maven-surefire-plugin.
Können Sie ausführen von maven-test aufrufen testng.xml von der Kommandozeile aus direkt über
Ich denke, es gibt grundlegende Fehler hier..
pom.xml = Paket-definition, die aufrechterhalten wird durch Maven
und testing.xml(jede xml-Benutzer können definieren) wird verwendet, für die TestNG-test definition. Entweder Sie nutzen die xml-Konfiguration können Sie eigene Konfiguration von benutzerdefinierten führen Sie Einstellungen für das ausführen von Test-NG
Und, Ihre zur Verfügung gestellten Konfiguration in der xml-Datei (test name, listener-Klasse name, suite-oder Klassenname) sollte mir passen, um Ihre test-Klasse. Wie haben Sie decleared class name = TestScripts.SamplePage aber dein test class = Probe , also das xml wird nie Führen Sie Ihre test-Klasse.
Kleines Beispiel :
<class name="com.automation.test.TestA" />
ist es in meinen Tests xml-und meine test-Klasse wird TestA.können Sie direkt testng.xml statt src/test/resources/testng.xml
Meine POM.xml ist in Ordnung. Ersetzen Sie es mit Ihrem POM.xml . Aktualisieren Sie Ihre maven und starten Sie erneut. Viel Glück 🙂