Используйте свойства профилей для различных сред в Maven для Selenium / Cucumber - PullRequest
0 голосов
/ 26 октября 2018

Я создаю тесты, используя Selenium WebDriver и Cucumber-jvm, построенные на Maven.Я хочу добиться следующего:

Я хочу иметь профили со свойствами и использовать эти свойства в моих шагах в зависимости от условий.

Я создал папку в src/test/resources и добавил 2 подпапкив нем: Staging и Dev.

В каждой папке у меня есть файл config.properties, в котором я сохранил username.

Мое POM выглядит так:

<profiles>
    <profile>
        <id>staging</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>

        </properties>
    </profile>

    <profile>
        <id>dev</id>
        <properties>

        </properties>
    </profile>
</profiles>

Теперь я хочу изменить свойства профилей на что-то вроде этого:

<properties> test/resources/dev/config.properties</properties>
<properties> test/resources/staging/config.properties</properties>

И я хочу, когда я запускаю свой тест с активным промежуточным профилем в моем шаге defs, когда я звоню:

system.getProperty("username")

Я хочу, чтобы это возвращало username, что указывается в свойствах подготовки.

Когда я запускаю это, когда активен профиль dev, я хочу получить свойство dev.

1 Ответ

0 голосов
/ 27 октября 2018
  • Добавьте свойства в свои профили, например:

    <propertiesFile>staging.properties</propertiesFile>
    

    <propertiesFile>dev.properties</propertiesFile>
    
  • Назовите соответствующие файлы свойств и поместите их непосредственно в src/test/resources.
  • Скопируйте соответствующий файл свойств в config.properties с одним из параметров, описанных в Рекомендации по копированию файлов с помощью Maven с использованием ${propertiesFile}.Я предпочитаю плагин Wagon Maven.

ОБНОВЛЕНИЕ

Это означает: забудьте о двух дополнительных каталогах, содержащих два файла свойств.Поместите их в src/test/resources/ и скопируйте их в соответствии с:

staging

src/test/resources/staging.properties, скопированными в:

  • src/test/resources/config.properties
  • или target/config.properties

в зависимости от фазы, с которой вы связываете процесс копирования.

dev

src/test/resources/dev.properties копируется в:

  • src/test/resources/config.properties
  • или target/config.properties

в зависимости от фазы, с которой вы связываете процесс копирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...