0

我是新的仪器测试。我正在尝试使用AndroidJUnitRunner进行基本测试。这是我的gradle:Android概率与AndroidJUnitRunner给'java.lang.ClassNotFoundException'

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "25.0.0" 
    defaultConfig { 
     applicationId "com.kaushik.mycart.ui" 
     minSdkVersion 15 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     jackOptions.enabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    .......................... 
    .......................... 

    testCompile 'junit:junit:4.12' 
    testCompile 'org.mockito:mockito-core:1.10.19' 
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3' 

} 

然后我添加了一个名为'ProductListActivityTest'的类来测试AndroidJunitRunner。它是如下:

package com.kaushik.myredmart.ui; 
// all includes 
@RunWith(AndroidJUnit4.class) 
public class ProductListActivityTest { 

    @Rule 
    public ActivityTestRule<ProductListActivity> rule = new ActivityTestRule<>(ProductListActivity.class); 

    @Test 
    public void ensureListViewIsPresent() throws Exception { 
     ProductListActivity activity = rule.getActivity(); 
     View viewByIdw = activity.findViewById(R.id.productListView); 
     assertThat(viewByIdw,notNullValue()); 
     assertThat(viewByIdw, instanceOf(RecyclerView.class)); 
     RecyclerView productListView = (RecyclerView) viewByIdw; 
     RecyclerView.Adapter adapter = productRecyclerView.getAdapter(); 
     assertThat(adapter, instanceOf(ProductAdapter.class)); 

    } 
} 

我在'androidTest'中没有添加其他文件。我也想提及在我的源代码中有Application类文件。现在,每当我尝试运行测试时间,它给以下错误:

Started running tests 
Test running failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException' 
Empty test suite. 

谁能帮助我确定在我的测试代码中的问题?

回答

0

我解决了这个问题。这是由于软件包名称的差异。我将所有包名称统一并再次运行。有用。谢谢大家的帮助。

1

你如何运行你的测试?

如果您是从Android的工作室做:

  • 打开运行菜单 - >编辑配置
  • 添加一个新的Android测试配置
  • 选择一个模块
  • 添加特定的仪器亚军:

    android.support.test.runner.AndroidJUnitRunner

从命令行通过摇篮:

./gradlew connectedAndroidTest