我正在为使用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中定义的目录中的屏幕截图等。
答案 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
}
}