GEB:设置默认环境?

问题描述

我通过 environments {} 闭包在 GebConfig 中声明了一些环境。 如果我在命令行中指定 -Dgeb.env,则一切正常。

但是当我出于调试目的开始单个测试时,我不想显式传递任何额外的环境变量。

如何定义GEB认使用的环境?

解决方法

只需在 driver 之外定义一个默认的 environments 我的 Geb 配置如下所示:

driver = {
  new HtmlUnitDriver(true)
}

environments {
  html_unit {
    driver = {
      new HtmlUnitDriver(true)
    }
  }
  phantomjs {
    driver = {
      WebDriverManager.phantomjs().version("2.1.1").setup()
      def pjsDriver = new PhantomJSDriver()
      pjsDriver.manage().window().size = new Dimension(1024,768)
      pjsDriver
    }
  }
  chrome {
    driver = {
      // (...)
    }
  }
  chrome_headless {
    System.setProperty("webdriver.chrome.logfile","chromedriver.log")
    System.setProperty("webdriver.chrome.verboseLogging","true")
    driver = {
      // (...)
    }
  }
  firefox {
    driver = {
      // (...)
    }
  }
  ie {
    driver = {
      // (...)
    }
  }
  edge {
    driver = {
      // (...)
    }
  }
  opera {
    driver = {
      // (...)
    }
  }
  win_app {
    driver = {
      // (...)
    }
  }
}