私のpom.xmlに、構成で定義されたスイートファイルを含む次のエントリがあります。
<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>
Mavenを使用してcmdでこれを実行する正しい方法は何ですか?以下のコマンドでテストを実行できますが、pomで既に定義されている場合、コマンドでtestng.xmlを再度指定しても意味がありません。
mvn clean test -DsuiteXmlFile=testng.xml
最も簡単な解決策は、surefireプラグインに以下の行を追加することです。
<suiteXmlFiles>
<!-- pass testng.xml files as argument from command line -->
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
そして、以下のようにxmlファイルを実行し、
mvn clean test -Dsurefire.suiteXmlFiles=/path/to/testng.xml
Testng xmlが固定されている場合は、mvn clean test
。 surefireプラグインはmavenのテスト段階でデフォルトで実行され、ハードコードされたxmlが取得されます。
最初に、pom.xmlに改善を追加してください...実行セクションを追加する必要があります:
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
2番目に、変数を使用してpom.xmlにセクションを作成できます。そして、それをcmdから呼び出します。
<properties>
<defaultSuiteFiles>
./Sets/Suits/CMS_Administration_SiteBackup_029.xml,
</defaultSuiteFiles>
<suiteFile>${defaultSuiteFiles}</suiteFile>
</defaultSuiteFiles>
</properties>
...
...
<suiteXmlFiles>
<suiteXmlFile>${suiteFile}</suiteXmlFile>
</suiteXmlFiles>
したがって、プロトタイプ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>
そして、これを使用して、cmdの例:mvn test -DdefaultSuiteFiles="./YOUR_DIRECTORY/YOUR_SUITE.xml,"
説明:pom.xmlで、デフォルトのxmlを設定し、変数に配置します。また、cmdで変数を使用する場合は、値を書き換えます。