2

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で定義されたディレクトリに保存します。

4

1 に答える 1

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
  }
}
于 2013-01-23T12:16:32.793 に答える