Android Studio Espresso测试错误:测试套件为空
在Android Studio中尝试执行测试时,我一直遇到以下错误:测试运行失败:找不到以下的工具信息:ComponentInfo{.Test/Android.support.Test.runner.AndroidJUnitRunner} 我的测试类位于androidTest/java目录中,并且有一个构造函数。我的身材格雷德尔也是对的。感谢您的帮助 测试类Android Studio Espresso测试错误:测试套件为空,android,testing,junit,android-espresso,Android,Testing,Junit,Android Espresso,在Android Studio中尝试执行测试时,我一直遇到以下错误:测试运行失败:找不到以下的工具信息:ComponentInfo{.Test/Android.support.Test.runner.AndroidJUnitRunner} 我的测试类位于androidTest/java目录中,并且有一个构造函数。我的身材格雷德尔也是对的。感谢您的帮助 测试类 @RunWith(AndroidJUnit4.class) @LargeTest public class AndroidUITests
@RunWith(AndroidJUnit4.class)
@LargeTest
public class AndroidUITests extends ActivityInstrumentationTestCase2<UserActivity>{
private UserActivity userActivity;
public AndroidUITests() {
super(UserActivity.class);
}
@Before
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
userActivity = getActivity();
}
@Test
public void testPhoneIconIsDisplayed() {
// When the phone_icon view is available,
// check that it is displayed.
onView(ViewMatchers.withId(R.id.groupCreate)).perform(click())
.check(matches(withText("Enter a name")));
}
}
我相当肯定,
android.support.test.runner.AndroidJUnitRunner
是由runner库提供的
dependencies {
...
androidTestCompile 'com.android.support.test:runner:0.2'
}
您必须更新测试“编辑配置”,并将AndroidJUnitRunner包含为检测运行程序 我在这段视频中找到了解决方案: 已更新 添加@loeschg建议的内容: 确保在测试运行之前检查logcat日志,以确保没有什么东西导致问题(崩溃)。@BeforeClass块中的错误代码可能导致Android Studio中出现“空测试套件”消息,尽管已正确设置了测试运行程序。虽然问题已经得到回答,但我认为值得为未来的访问者发布
确保在测试运行之前检查logcat日志,以确保没有任何问题(崩溃)。我在我的
@BeforeClass
块中有错误的代码,这导致Android Studio中出现“空测试套件”消息,尽管已正确设置了测试运行程序。如果您收到此类错误消息:
Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.
您需要确保您的浓缩咖啡测试是否添加到运行/调试配置
中的Android Instrumented Tests
部分
看起来,Android Studio 3.1.3有时会错误地将其添加到Android JUnit
部分
确保它看起来像这样:
另外,值得一提的是,我注意到,在选择非
调试
构建变量时,我会出现此问题。如果2018年仍有人为此烦恼,请看工作设置:
build.gradle
(必需)):
安卓{
默认配置{
TestInstrumentRunner“androidx.test.runner.AndroidJUnitRunner”
//这里是(第一)!
}
依赖关系{
androidTestImplementation'androidx.test:runner:1.1.1'
androidTestImplementation'androidx.test.ext:junit:1.1.0'
AndroidTest实施“androidx.test.浓缩咖啡:浓缩咖啡核心:3.1.1”
//^^^^所有三个必需的^^^^(第二个)
}
在仪器化测试中(也需要):
导入androidx.test.espresso.espresso.onData
导入androidx.test.espresso.espresso.onView
导入androidx.test.espresso.action.ViewActions*
导入androidx.test.espresso.assertion.ViewAssertions*
导入androidx.test.espresso.matcher.RootMatchers*
导入androidx.test.espresso.matcher.ViewMatchers*
导入androidx.test.ext.junit.runners.AndroidJUnit4
导入androidx.test.filters.LargeTest
导入org.hamcrest.Matchers*
导入org.junit.Test
导入org.junit.runner.RunWith
@RunWith(AndroidJUnit4::类)
@最大的
类应用程序测试{
@试验
乐趣之旅{
//与一些用户界面进行交互
onView(带id(R.id.MyButtonNonMyActivity))。执行(单击())
//断言预期结果
onView(带id(R.id.myTextViewOnMyActivity))。检查(匹配项(isDisplayed())
}
}
//(三)
我的问题是build.gradle(应用程序)中指定了字段“testInstrumentationRunner”。如果正在使用它,请将其更改为androidx(androidx.test.runner.AndroidJUnitRunner)
希望它能帮助某些人,干杯!如果有疑问,请参考官方示例:。另外,如果使用“All-in-package”,请确保设置了正确的运行配置选项,如果您使用
applicationIdSuffix
optionTanks,它可能与applicationId不匹配。如果错误没有误导,我希望是这样:)Runner不能再在运行/调试配置中指定。非常感谢更新的提示!节省了我的时间!我也注意到了这种情况。从Android JUnit sectio中删除了测试从下一次测试开始,清理项目确实对我起了作用。
Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.