Android
AndroidStudio

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

More than 3 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だと問題ないんですけど、何が原因なんでしょうね?