Хочу запускать тесты из командой строки на разных браузерах, сейчас этим рулит local.testng.xml, он выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="XXX" verbose="5" parallel="tests">
<test name="Tests" thread-count="1">
<parameter name="config" value="local.conf.json"></parameter>
<parameter name="environment" value="firefox"></parameter>
<packages>
<package name="oururl.script_inside"/>
<package name="oururl.script_outside"/>
<package name="com.meetrics.video_ads"/>
</packages>
</test>
</suite>
Также есть вот такой pom-файл Maven
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.XXX</groupId>
<artifactId>XXXTests</artifactId>
<version>4.0.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.6</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>com.dev9</groupId>
<artifactId>webdriver-utils</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.7</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${suitexml.file}</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<profileId>${profileId}</profileId>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- profiles -->
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<id>local</id>
<properties>
<profileId>local</profileId>
<suitexml.file>src/test/resources/testng.local.xml</suitexml.file>
<dataCollector>s16</dataCollector>
<scriptFile>mtrcs_333330</scriptFile>
<pjID>333330</pjID>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<profileId>dev</profileId>
<dataCollector>s16</dataCollector>
<scriptFile>mtrcs_333331</scriptFile>
<pjID>333331</pjID>
<suitexml.file>src/test/resources/testng.xml</suitexml.file>
</properties>
</profile>
<profile>
<id>staging</id>
<properties>
<profileId>staging</profileId>
<activeByDefault>true</activeByDefault>
<dataCollector>s16</dataCollector>
<scriptFile>mtrcs_333330</scriptFile>
<pjID>333330</pjID>
<suitexml.file>src/test/resources/testng.xml</suitexml.file>
</properties>
</profile>
<profile>
<id>live</id>
<properties>
<profileId>live</profileId>
<dataCollector>s16</dataCollector>
<scriptFile>mtrcs_333332</scriptFile>
<pjID>333332</pjID>
<suitexml.file>src/test/resources/testng.xml</suitexml.file>
</properties>
</profile>
</profiles>
</project>
И вот такй файлик с окружениями local.conf.json:
{
"environments": {
"chrome": {
"browser": "chrome"
},
"firefox": {
"browser": "firefox"
}
}
}
В данный момент при запуске с помощью команды
> clean test -Plocal
тесты всегда выполняются в том браузере, который казан в tesng.local.xml, то есть тут:
<parameter name="environment" value="firefox"></parameter>
Хотелось бы передавать желаемый браузер в командой строке, например -Dbrowser=chrome
или -Plocal,chrome
. Не очень понимаю как отвязаться от tesng в данном случае и что надо сделать?