LoginSignup
2
0

More than 5 years have passed since last update.

AWS DeviceFarmでUIAutomatorテストする際にハマったこと

Last updated at Posted at 2016-06-21

はじめに

AWS DeviceFarm上でAndroidアプリのUIAutomatorによるUIテストを実施した際に、いくつかハマった事があったので残しておきます。 DeviceFarmやUIAutomatorの使い方についてはここでは触れません。

1. UIAutomator2.0からInstrumentationテスト扱いになっている

DeviceFarmのコンソール画面からCreate New Runボタンを押下すると、テストの設定画面に移ります。Step1ではプロジェクトのapkファイルをアップロードします。Step2ではテストのタイプをラジオボタンから選択するのですが、ここが1つ目のハマりポイントです。
選択項目の一番下にuiautomatorという項目があるので普通に考えるとこれを選択してしまうのですが、どうやらUIAutomator2.0からInstrumentationテスト扱いになっているようです。
UIAutomator2.0以上を利用している人はInstrumentationを選択して、下記コマンドで生成したapp-debug-androidTest-unaligned.apkをアップロードしてテストを開始しましょう。

./gradlew assembleDebugAndroidTest

2. テスト用クラスとメソッドの命名規則がある

ここが一番ハマりました。apkファイルをアップロードするとテストが開始されるのですが、結果は以下のようにSetupSuiteとTeardownSuiteテストしか行われていませんでした。
s.png

調べに調べたところ、DeviceFarmのDiscussionForumsにさらっと書いてありました。
どうやらテスト用クラスとメソッド名にルールがあるようです。
https://forums.aws.amazon.com/thread.jspa?messageID=696754

上記リンクの内容から抜粋すると、テスト用クラス名は、

"[Tt]est[Ss]?.*"

もしくは 

".*[Tt]est[Ss]"

もしくは 

"[Tt]est.*"

のパターンで始め(終わら)なければならない模様。
また、メソッド名はtestXXXとしなければならないようです。

こんなかんじですね。

public class HogeTests extends InstrumentationTestCase {
    public void testHogeUI() {
        // ...
    }
}

上記の規則に従ってない場合はAWS DeviceFarm側がテストクラス/メソッドとして認識できないとのこと。
この記事が誰かの役にたてば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0