Мне пришлось решить аналогичную проблему.И вот как я подошел.
Шаг 1: Добавьте surefire plugin
в ваш POM.xml
в разделе build > plugin
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<TestEnvironment>local</TestEnvironment>
</systemPropertyVariables>
<!-- <suiteXmlFiles>
<suiteXmlFile>here goes your testng xml</suiteXmlFile>
</suiteXmlFiles> -->
</configuration>
</plugin>
Здесь, TestEnvironment
- это настраиваемое системное свойство, которое вы настраиваете, его можно получить позже в вашем коде.
Примечание: Если вы хотите запустить определенный testng xml, снимите комментарий <suiteXmlFiles>
пометьте и укажите путь к вашему XML-файлу testng.
Шаг 2: Добавьте код, чтобы получить системное свойство и прочитать его из соответствующего файла свойств.
// Assuming your properties files are in the root directory of your project.
String configFileName = "./%s-config.properties";
String EnvironmentName = System.getProperty("TestEnvironment");
System.out.println("TestEnvironment: " + EnvironmentName);
configFileName = String.format(configFileName, EnvironmentName);
properties = new Properties();
properties.load(new FileInputStream(new File(configFileName)));
Шаг-3: Передать TestEnvironment
в mvn
команду
mvn clean test -DTestEnvironment=sit
Эта команда прочитает ваш файл sit-config.properties
и выполнит тесты.Для чтения из разных файлов свойств введите в командной строке другое значение.
Пожалуйста, дайте мне знать, если это ответило на ваши вопросы.