标签: testing-support-library

无法解析符号'AndroidJUnit4'

显然我需要正确的导入语句来解决这个问题.根据文档AndroidJUnit4,这应该是

import android.support.test.runner.AndroidJUnit4;
Run Code Online (Sandbox Code Playgroud)

当我这样做时,Android Studio突出显示runner为红色并抱怨"无法解析符号'跑步者'".

背景

我遵循Android开发者网站上的教程,使用UI Automator设置测试,从而达到了这一点.我遇到的第一个问题是,com.android.support:support-v4:22.2.0com.android.support.test:runner:0.2依赖于不同的版本com.android.support:support-annotations.我按照Android漏洞报告的建议,allprojects在我的项目中添加了以下内容build.gradle:

configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}
Run Code Online (Sandbox Code Playgroud)

这解决了即时错误,但我怀疑它导致了我当前的问题.有没有人有任何关于如何解决这个问题的建议?

从`./gradlew:app:dependencies中重新发布部分

androidTestCompile - Classpath for compiling the androidTest sources.
+--- com.jayway.android.robotium:robotium-solo:5.2.1
+--- com.squareup:fest-android:1.0.8
|    \--- org.easytesting:fest-assert-core:2.0M10
|         \--- org.easytesting:fest-util:1.2.5
+--- com.android.support.test:runner:0.2
|    +--- junit:junit-dep:4.10
|    |    \--- org.hamcrest:hamcrest-core:1.1
|    +--- com.android.support.test:exposed-instrumentation-api-publish:0.2
|    \--- com.android.support:support-annotations:22.0.0 -> 22.2.0
+--- com.android.support.test:rules:0.2
|    \--- com.android.support.test:runner:0.2 (*)
\--- com.android.support.test.uiautomator:uiautomator-v18:2.1.0

compile - Classpath …
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle android-uiautomator testing-support-library

129
推荐指数
9
解决办法
6万
查看次数

使用测试支持库销毁并重新启动活动

使用Android中的旧JUnit3样式测试,我可以执行以下操作来破坏并重新启动活动:

Instrumentation inst = getInstrumentation();
Activity activity = inst.getActivity();
// do something
activity.finish();
Assert.assertTrue(this.activity.isFinishing());
activity = inst.getActivity();
// assert that activity's state is restored
Run Code Online (Sandbox Code Playgroud)

如何使用新的测试支持库完成同样的事情?我可以使用Espresso和/或UI Automator或新库提供的任何其他机制.

更新:

我尝试了以下方法:

Activity activity = activityTestRule.getActivity();
// do something
activity.finish();
Assert.assertTrue(this.activity.isFinishing());
activity = activityTestRule.getActivity();
// assert that activity's state is restored
Run Code Online (Sandbox Code Playgroud)

但是,似乎ActivityTestRule.getActivity()不会重新启动活动.

testing android android-testing testing-support-library

9
推荐指数
1
解决办法
6228
查看次数

GrantPermissionRule停止工作

我的GrantPermissionRule 成功地在我的Android应用程序上实现2018年1月3日将不再有效.当我通过Android Studio运行Espresso测试时,模拟器会阻止等待权限.但是,当我从命令行运行测试时,./gradlew dist; ./gradlew connectedDebugAndroidTest --stacktrace它不会要求权限.注意我在每次运行之前手动擦除模拟器中的数据,以确保它是对GrantPermissionRule的正确测试.

以下是我用于实现GrantPermissionRule的原始引用:https : //www.kotlindevelopment.com/runtime-permissions-espresso-done-right/ https://developer.android.com/reference/android/support/test/rule /GrantPermissionRule.html

app/build.gradle中的版本:

  • com.android.support.test.espresso:咖啡核心: '3.0.1'
  • com.android.support.test:亚军: '1.0.1'

GrantPermissionRule是否已停止为其他人宣传工作?

android testing-support-library

8
推荐指数
1
解决办法
1603
查看次数

适用于Android的参数化仪器测试

AndroidJUnit4和参数化测试的答案链接到Google示例以供使用@RunWith(Parameterized.class).但是,这是一个简单的单元测试.如何运行参数化检测测试?

testing android junit4 android-instrumentation testing-support-library

7
推荐指数
1
解决办法
512
查看次数

无法解析符号“LargeTest”

我正在将所有测试转换为测试支持库LargeTest但是,当我尝试像这样导入注释时

import android.support.test.filters.LargeTest;
Run Code Online (Sandbox Code Playgroud)

我明白了Cannot resolve symbol 'LargeTest'。我需要将什么依赖项添加到我的 gradle 文件中才能解决此错误?

testing android android-studio testing-support-library

5
推荐指数
1
解决办法
1640
查看次数