Geb test игнорирует файл GebConfig.groovy, запущенный в IntelliJ - PullRequest
0 голосов
/ 10 октября 2018

Запуск в IntelliJ IDEA.GebConfig.groovy находится в /src/test/resources.

Я использую драйвер Chrome.

Когда я набираю System.setProperty("webdriver.chrome.driver", "my/path") в моем файле спецификаций, и я щелкаю правой кнопкой мыши и выбираю запустить, тест работаетЭто означает, что он открывает Chrome и загружает страницу.

Когда я не делаю этого в файле спецификации, а просто оставляю его в файле GebConfig.groovy, я получаю сообщение об ошибке «страница для драйвера»исполняемый файл должен быть установлен ".

Там есть воздушный зазор, поэтому я не могу копировать-вставить;Я напишу здесь столько, сколько смогу: GebConfig.groovy:

import org.openqa.selenium.chrome.ChromeDriver

...

environments {
    chrome {
        System.setProperty("webdriver.chrome.driver", "my/path")
        driver = {new ChromeDriver()}
    }
}

Файл спецификации действительно прост, как пример на GitHub

import LoginPage
import geb.spock.GebReportSpec

class LoginSpec extends GebReportSpec
{

    // Works when I put this here, but I should not have to do this!
    System.setProperty("webdriver.chrome.driver", "my/path")

     def "user can log in" () {
        when: "log in as me"
            def loginPage = to LoginPage
            loginPage.login("me")
        then: 
          ....
     }
 }

1 Ответ

0 голосов
/ 11 октября 2018

Чтобы исправить вашу проблему, если вы хотите сохранить путь в конфигурации geb, настройка пути вне раздела среды должна работать следующим образом:

import org.openqa.selenium.chrome.ChromeDriver

System.setProperty("webdriver.chrome.driver", "my/path")

//You can also set the driver up here as a default and running with an environment set will override it
driver = {new ChromeDriver()}


environments {
    chrome {
        driver = {new ChromeDriver()}
    }
}

Лично я бы не стал добавлять путь к драйверуКонфигурация geb и создайте конфигурацию запуска в intelliJ для локального запуска.

Щелкните правой кнопкой мыши файл спецификации> Нажмите «Создать 'nameOfMySpec'".

Теперь добавьте путь к драйверу в параметры виртуальной машины:

-Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path

Стоит также рассмотреть сценарий оболочки, который затем может быть вызван через Jenkins и т. Д .:

mvn test -Dgeb.env=chrome -Dwebdriver.chrome.driver=my/path
...