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

时间:2016-05-31 18:32:14

标签: android android-studio compiler-errors integration-testing undefined-symbol

我已经看到了类似问题的部分答案,但从未真正解决问题。我把它煮成了一个最小的应用来证明这个问题。

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

  • Android SDK工具v25.1.6
  • Android SDK Platform-tools v23.1
  • Android SDK Build-tools v23.0.3
  • Android支持资源库v32

    1. 使用向导
    2. 创建新的Android应用
    3. 更新了build.gradle(app):https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html

      • 在defaultConfig下添加:

        • testInstrumentationRunner" android.support.test.runner.AndroidJUnitRunner"
      • 在依赖项下添加了

        • androidTestCompile' com.android.support:support-annotations:23.0.1' < - 更改为23.4.0以匹配新生成的应用
        • androidTestCompile' com.android.support.test:runner:0.4.1'
        • androidTestCompile' com.android.support.test:规则:0.4.1'
    4. 项目同步到同步Gradle

    5. 在"测试" package添加新的测试文件 - ExampleIntegrationTest.java(紧邻ExampleUnitTest.java)

    6. 在新文件中,创建了集成测试:{{3}}

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         在线:导入android.support.test.runner.AndroidJUnit4;

如果我输入import语句,我可以使用弹出建议:
     - 导入android。 - 它显示"支持作为选项"
     - 导入android.support。 - 它显示"测试"作为选择
     - 导入android.support.test。 - 现在它只显示"规则"作为选项

创建应用后,我确保使用" debug"变体

这很干爽。据我所知,这应该可行,但由于某些原因,支持库无法正确导入。

2 个答案:

答案 0 :(得分:4)

通过将测试添加到

来解决此问题
  • / app / src / androidTest目录而不是
  • / app / src / test仅用于单元测试的目录

或者,在创建测试类时,在项目树的“Android Instrumentation Tests”选项卡中选择新类来添加测试

答案 1 :(得分:0)

请确保您的测试位于正确的文件夹中。有本地和仪器测试必须存放在各自的文件夹中,如下所述:

Take a look at this article ,其中说......

  

运行检测单元测试要运行检测测试,请按照   这些步骤:

     

单击同步,确保您的项目与Gradle同步   工具栏中的项目。通过以下方式之一运行测试:   要运行单个测试,请打开“项目”窗口,然后右键单击a   单击测试并单击运行。要测试类中的所有方法,请右键单击a   测试文件中的类或方法,然后单击“运行”。在a中运行所有测试   在目录中,右键单击该目录并选择Run tests。该   Gradle的Android插件编译位于的检测测试代码   在默认目录(src / androidTest / java /)中,构建一个测试APK   和生产APK,在连接的设备上安装两个APK或   模拟器,并运行测试。然后,Android Studio会显示结果   在“运行”窗口中执行检测的测试执行。

因此,对于仪器测试文件夹必须(不要忘记案例)

  

的src / androidTest / JAVA

本地测试文件夹必须

  

的src /测试/ JAVA

然后,您可以让您的包文件夹与您的应用包匹配

希望,这对社区有帮助!