我见过类似问题的部分答案,但从未真正解决过问题。我已经把它归结为一个最小的应用程序来演示这个问题。
我使用的是最新版本的Android Studio(V2.2.1)我安装了以下SDK:
- Android SDK Tools v25.1.6
- Android SDK平台工具v23.1
- Android SDK构建工具v23.0.3
-
Android支持存储库v32
- 使用向导创建新的Android应用程序
-
更新build.gradle(应用程序)根据:https://developer.android.com/training/testing/start/index.html#config-仪器测试
-
在defaultConfig:
下添加- testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner">
-
在依赖项下添加
- androidTestCompile.com.android.support:支持注释:23.0.1'<--更改为23.4.0以匹配新生成的应用程序
- androidTestCompile.com.android.support.test:runner:0.4.1'
- androidTestCompile.com.android.support.test:rules:0.4.1'
- androidTestCompile.com.android.support:支持注释:23.0.1'<--更改为23.4.0以匹配新生成的应用程序
-
-
项目同步到同步Gradle 吗
-
在"测试"包下添加新的测试文件-ExampleIntegrationTest.java(紧挨着ExampleUnitTest.java)
-
在新文件中,根据以下内容创建了集成测试:https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html
import android.support.test.runner.AndroidJUnit4;
import android.test.suitebuilder.annotation.SmallTest;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@SmallTest
public interface ExampleIntegrationTest {
}
这就是问题出现的地方-无法解决符号AndroidJUnit4在线:importandroid.support.test.runner.AndroidJUnit4;
如果我键入导入语句,我可以使用弹出的建议:
-import android。-它显示"支持为选项">
-import android.support。-它显示"测试"为选项
-inport android.support.test。-现在它只显示"规则"为选项
在我创建应用程序后,我确保它使用"调试"变体
这真是干干净净。据我所知,这应该可以工作,但由于某种原因,支持库没有正确导入。
通过将测试添加到来修复此问题
- /app/src/androidTest目录,而不是
- /app/src/test目录,仅用于单元测试
或者,当您创建测试类时,在项目树的"Android Instrumentation Tests"选项卡中选择新类来添加测试
请确保您的测试位于正确的文件夹中。有一些本地和仪器测试,它们必须位于各自的文件夹中,如下所述:
看看这篇文章,它说。。。
运行插入指令的单元测试要运行插入指令测试,请按照这些步骤:
单击"同步"确保您的项目与Gradle同步工具栏中的项目。使用以下方法之一运行测试:要运行单个测试,请打开"项目"窗口,然后右键单击测试并单击"运行"。若要测试类中的所有方法,请右键单击类或方法,然后单击Run。在中运行所有测试目录,右键单击该目录并选择Run tests。这个Gradle的Android插件编译位于在默认目录(src/androidTest/java/)中,构建一个测试APK和生产APK,在连接的设备上安装两个APK,或模拟器,并运行测试。Android Studio然后显示结果"运行"窗口中插入指令的测试执行的。
因此,对于仪器测试,文件夹必须是(不要忘记这种情况)
src/androidTest/java
并且对于本地测试,文件夹必须是
src/test/java
然后您可以拥有与应用程序包匹配的包文件夹
希望,这对社区有帮助!