Geb:在运行时设置报告目录

时间:2013-01-23 12:11:03

标签: groovy geb

我正在为使用Geb的网站编写一个小测试框架。作为我的报告功能的一部分,我希望能够在运行时指定 reportsDir 所在的位置。我不是开发人员所以请原谅这个问题中的任何遗漏。

到目前为止,我所阅读的所有内容都表明,这只能通过项目的配置或构建适配器进行设置。但是,Geb的Configuration类有一个setReportsDir方法,我可以从浏览器对象访问该方法:

def currentConfig = pageBrowser.getConfig()

def reportLocation = "target/runtime_reports_dir"
def reportFile = new File(reportLocation)
reportFile.mkdirs()

File newTarget = new File(reportLocation)
currentConfig.setReportsDir(newTarget)

不幸的是,虽然这似乎改变了浏览器配置对象中的 reportsDir ,但实际输出仍然出现在我的配置定义的目录中。

这可能吗?我是否可以覆盖 GebReportingTest 中的 setupReporting 方法(我没有发现任何暗示如何做到这一点的方法)?

---编辑1 ---

我试过

class MyTest extends GebReportingTest {

    def pageBrowser

    def setup() {
        this.pageBrowser = new Browser()
        this.pageBrowser.config.reportsDir = new File( 'target/runtime_reports_dir' )
    }

    @Test
    void runTestSet() {

        setup()
        this.pageBrowser....
    }
}
在蒂姆发表评论之后,我到目前为止并没有任何喜悦。在调用setup()方法之后,pageBrowser的config对象返回我在代码中定义的reportsDir。但是,'report'命令的所有实例都存储了GebConfig.groovy中定义的目录中的屏幕截图等。

1 个答案:

答案 0 :(得分:1)

Geb将在类路径的根目录中查找GebConfig.groovy

您可以在那里设置reportsDir

请参阅:http://www.gebish.org/manual/0.6.2/configuration.html#reports_dir

编辑:

你试过了吗?

class MyTest extends GebReportingTest {
  void setUp() {
    browser.config.reportsDir = new File( 'target/runtime_reports_dir' )
  }

  @Test
  void runTestSet() {
    // Do testing
  }
}