Установите значения config.properties с помощью команды maven

Я новичок в автоматизации и создал образец проекта. У меня есть файл config.properties и класс для чтения и записи в этот файл. config.properties содержит переменные браузера и URL. Я хочу запустить тест с помощью команды mvn test и передать значение браузера во время выполнения.

что-то вроде

mvn -Dbrowser = тест firefox

Я не уверен, как это сделать, поскольку эти вещи совершенно чужды мне.

Всего 2 ответа


С вашим текущим кодом вы устанавливаете временную переменную в переменных env. Чтобы это работало, вы должны пойти в свой класс, где вы устанавливаете строку браузера и помещаете туда логическое значение. Логическое значение должно проверять, является ли значение браузера из переменной среды нулевым или нет. Если не ноль, оно должно принять это значение в качестве значения вашего браузера. И если он нулевой, он должен делать то, что вы делаете сейчас. Таким образом, вместо того, чтобы просто напрямую читать значение браузера из файла конфигурации, вы должны сделать его условным. Что-то вроде этого:

String browserParamFromEnv = System.getProperty("browser");
String browser = browserParamFromEnv == null ? ConfigurationReader.getProperty("browser") : browserParamFromEnv;

Вы можете передавать имя браузера динамически с префиксом -D качестве системной переменной. Чтобы настроить его с помощью проекта maven, Maven Surefire plugin предоставляет параметр конфигурации для systemPropertyVariables для установки system переменных. Определенные здесь свойства будут доступны в тестах maven.

<build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.0</version>
                    <configuration>
                        <systemPropertyVariables>
                            <browser>${browserName}</browser>
                        </systemPropertyVariables>              
                    </configuration>
                </plugin>
            </plugins>
        </build>

Для установки динамических системных переменных вы можете использовать ${browserName} чтобы вы могли свободно передавать любое значение в команду maven как

mvn -Dbrowser=firefox test

ИЛИ

mvn -Dbrowser=chrome test

Есть идеи?

10000