2015-06-25 50 views
2

我一直在嘗試使用AndroidJunit4轉輪來運行濃縮咖啡測試。 這是我的測試課。爲什麼espresso需要測試方法名稱以「test」開頭,即使它使用的是AndroidJunit4 runner?

@RunWith(AndroidJUnit4.class) 
public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { 
    public MyActivityTest() { 
    super(MyActivity.class); 
    } 
    @Before 
    public void setUp() throws Exception { 
    super.setUp(); 
    injectInstrumentation(InstrumentationRegistry.getInstrumentation()); 
    getActivity(); 
    } 
    @Test 
    public void shouldAssert() { 
    onView(withId(someId)).check(matches(isDisplayed())); 
    } 
} 

我一直在試圖通過./gradlew connectedCheck從命令行運行這個測試,但由於某種原因,它不承認這個測試。
雖然我能夠通過Android Studio運行此測試。
如果我將我的測試方法從shouldAssert重命名爲testShouldAssert gradle能夠將其識別爲測試併成功運行。
我很困惑,因爲在Junit4風格測試方法名稱不需要從測試開始。
有人對此有任何想法嗎?

[編輯]
這裏是我的build.gradle文件

android { 
    defaultConfig { 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    dependencies { 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2') { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    } 
    androidTestCompile('com.android.support.test.espresso:espresso-intents:2.2') { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    } 
} 
+0

您能提供一份「build.gradle」文件嗎? – AndroidGuy

+0

增加build.gradle配置 – ankitrokdeonsns

回答

0

當在命令行中運行確保gradle這個使用jUnit4亞軍。

添加testInstrumentationRunner到的build.gradle文件

android { 
    defaultConfig { 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

沒有這個亞軍,默認jUnit3亞軍將使用要求的測試方法,開始以「test」

+0

我有這個配置在我的build.gradle filr – ankitrokdeonsns

0

不要延長ActivityInstrumentationTestCase2 ,請使用@Rule註釋:

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class MyActivityTest { 

    @Rule 
    public ActivityTestRule<MyActivity> mActivityRule = 
    new ActivityTestRule<>(MyActivity.class); 

    @Test 
    public void shouldAssert() { 
    onView(withId(someId)).check(matches(isDisplayed())); 
    } 
} 
相關問題