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の構成オブジェクトはコードで定義したreportsDirを返します。ただし、「report」コマンドのすべてのインスタンスは、スクリーンショットなどをGebConfig.groovyで定義されたディレクトリに保存します。