Android Studio集成测试无法解析符号AndroidJUnit4



我见过类似问题的部分答案,但从未真正解决过问题。我已经把它归结为一个最小的应用程序来演示这个问题。

我使用的是最新版本的Android Studio(V2.2.1)我安装了以下SDK:

  • Android SDK Tools v25.1.6
  • Android SDK平台工具v23.1
  • Android SDK构建工具v23.0.3
  • Android支持存储库v32

    1. 使用向导创建新的Android应用程序
    2. 更新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'
    3. 项目同步到同步Gradle 吗

    4. 在"测试"包下添加新的测试文件-ExampleIntegrationTest.java(紧挨着ExampleUnitTest.java)

    5. 在新文件中,根据以下内容创建了集成测试: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

然后您可以拥有与应用程序包匹配的包文件夹

希望,这对社区有帮助!

最新更新