はじめに
これは Geb Advent Calendar 2016の8日目の記事です。
前日は「Gebでモバイルブラウザのテストをする」でした。
今日は昨日のエントリーの続きで、モバイルとPC用のサイトを両方テストする時の方法書きます。
TIPs
モバイルとPCのサイトを両方テストできるようにしておきたい!
そんな時は、環境変数によって切り替えられるようにしておきましょう。
例えば下記のような感じ。詳しい説明は昨日のエントリーへ。
GebConfig.groovy
// geb.envにchromeを設定すればPCで実行
chrome { new ChromeDriver() }
// geb.envにchromeMobileを設定すればモバイル版で実行
chromeMobile {
def mobileEmulation = [:]
mobileEmulation.put("deviceName", "Google Nexus 5")
def chromeOptions = [:]
chromeOptions.put("mobileEmulation", mobileEmulation)
def capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new ChromeDriver(capabilities);
}
Gradleとか使っている場合は、こんな感じでそれ用のタスクを切っておくと良いかと思います。
モバイルだけ実行するテストがある!
そんな時はSpockの@IgnoreIfという機能を使いましょう。
これは特定の条件に応じて、テストの実行をスキップできる機能です。
例えばこんな風に使ったりできます。
@IgnoreIf({ System.getProperty("geb.env") && System.getProperty("geb.env").equalsIgnoreCase("chrome")})
def "PC版のchromeの時は無視するテスト"() {
// 略
まとめ
モバイルとPC版のテスト、両方できるよー!