Help us understand the problem. What is going on with this article?

Android StudioでAndroidJUnit4を使うとテストが実行されない場合がある

More than 5 years have passed since last update.

問題

ActivityInstrumentationTestCase2を継承したクラスでAndroidJUnit4を使うとテストが実行されないことがあります
とりあえず、Android Studio 1.1.0 + Espresso 2.0で確認

MainActivityTest.java
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    private MainActivity mActivity;

    public MainActivityTest() {
        super(MainActivity.class);
    }

    @Before
    public void before() throws Exception {
        this.setUp();
        injectInstrumentation(InstrumentationRegistry.getInstrumentation());
        mActivity = getActivity();
    }

    @After
    public void after() throws Exception {
        this.tearDown();
    }

    @Test
    public void checkClick() {
        //ボタンをクリック
        onView(withId(R.id.button)).perform(click());
    }
}

アノテーションをつけたのにも関わらず、checkClickは実行されません

現状の回避方法

MainActivityTest.java
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    //〜中略〜
    @Test
    public void test() {}

    @Test
    public void checkClick() {
        //ボタンをクリック
        onView(withId(R.id.button)).perform(click());
    }
}

このようにtestを含んだメソッドを1個余計に作るだけでOKです
これでtestとcheckClickが実行されます

普通のクラスやApplicationTestCaseだと問題ないんですけど、何が原因なんでしょうね?

digitaljunky
頼まれれば出来る範囲で何でもやるエンジニア / 現在は、AndroidやUnityが中心
http://www.gravitypianist.info/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away