Tengo la siguiente entrada en mi pom.xml con el archivo de la suite definido en la configuración.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin>¿Cuál es la forma correcta de ejecutar esto en cmd usando maven? Puedo ejecutar la prueba con el siguiente comando, pero no tiene sentido indicar testng.xml nuevamente en el comando cuando ya está definido en el pom.
mvn clean test -DsuiteXmlFile=testng.xmlLa solución más fácil sería agregar las siguientes líneas en el complemento surefire.
<suiteXmlFiles> <!-- pass testng.xml files as argument from command line --> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile> </suiteXmlFiles>Y ejecute su archivo xml como se muestra a continuación,
mvn clean test -Dsurefire.suiteXmlFiles=/path/to/testng.xmlSi tiene un xml de prueba fijo, solo necesita hacer mvn clean test . El complemento surefire se ejecutaría de forma predeterminada en la fase de prueba de maven y se recogería el xml codificado.
en primer lugar, agregue la mejora en pom.xml... necesita agregar la sección de ejecución:
<executions> <execution> <phase>test</phase> <goals> <goal>test</goal> </goals> </execution> </executions>En segundo lugar, puede crear una sección en pom.xml con variables. Y, luego, llamándolo desde cmd.
<properties> <defaultSuiteFiles> ./Sets/Suits/CMS_Administration_SiteBackup_029.xml, </defaultSuiteFiles> <suiteFile>${defaultSuiteFiles}</suiteFile> </defaultSuiteFiles> </properties> ... ... <suiteXmlFiles> <suiteXmlFile>${suiteFile}</suiteXmlFile> </suiteXmlFiles>Entonces, resultado del prototipo pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ..... ..... <properties> <defaultSuiteFiles> ./Sets/Suits/CMS_Administration_SiteBackup_029.xml, </defaultSuiteFiles> <suiteFile>${defaultSuiteFiles}</suiteFile> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <profiles> <profile> <id>Base configuration</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <defaultGoal>install</defaultGoal> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <inherited>true</inherited> <executions> <execution> <phase>test</phase> <goals> <goal>test</goal> </goals> </execution> </executions> <configuration> <suiteXmlFiles> <suiteXmlFile>${suiteFile}</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.3.1</version> </dependency> </dependencies> </project> Y use esto, como un ejemplo para cmd: mvn test -DdefaultSuiteFiles="./YOUR_DIRECTORY/YOUR_SUITE.xml,"
Explicaciones : en pom.xml, configura xmls por defecto y los coloca en variables. Y, si usará variable en cmd, reescribirá los valores.