yfj2’s Automatic Web Test Related Blog

yfj2のWEBテスト自動化に関わるブログ

GebとSpockでログをファイル出力したい

【Geb】【Tips】GebとSpockでログをファイル出力したい
著者:ふじさわゆうき

問題

  • GebとSpockでログをファイル出力したい
    • 例えば、テストのページ遷移を"title"をログ出力しておくことで、第三者に示す資料の材料となる

解決

  • Fileクラスを使って出力する
    • 以下、テストクラスごとのログ出力のプログラム例である
      • 「"target/" + LoggerTest.class.simpleName + ".log"」でクラス名によるログファイル出力をしている
      • "logger.delete()"でログファイルの初期化をしている
      • "logger.append"でログファイルに出力している
class LoggerTest extends GebSpec {

	@Shared File logger = new File("target/" + LoggerTest.class.simpleName + ".log")

	def "output log file"() {
		setup:
		logger.delete()

		when:
		go "http://www.yahoo.co.jp"

		then:
		waitFor{ title == "Yahoo! JAPAN"}
		logger.append("firstPage: " + title + "\n")

		when:
		$("form").p = "sample"
		$("input",value:"検索").click()
		logger.append("search: " + "sample" + "\n")

		then:
		waitFor{ title == "「sample」の検索結果 - Yahoo!検索"}
		logger.append("secondPage: " + title + "\n")
	}
}
  • 出力結果
    • target/LoggerTest.log
firstPage: Yahoo! JAPAN
search: sample
secondPage: 「sample」の検索結果 - Yahoo!検索

参考文献