为什么Android Studio会说"未收到测试事件"?

W.C*_*eau 9 junit unit-testing gradle android-studio android-gradle-plugin

我正在尝试在我的Android应用程序中进行单元测试,这是我正在做的简单的测试教程.

import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
public class ServerListManagerTest extends AndroidTestCase{

   @Test
   public void testTrueIsTrue() throws Exception {
    assertEquals(true, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

目录是这样的, src\main\androidTest\java\some packages\ServerListManagerTest.java

我尝试更改此目录,并构建配置.虽然构建成功,但android studio仍然无法识别我的单元测试.

这是我在app中的build.gradle,

apply plugin: 'com.android.application'

android {
   compileSdkVersion 21
   buildToolsVersion "21.1.2"

   defaultConfig {
       applicationId "com.kaist.se.pmpapp"
       minSdkVersion 16
       targetSdkVersion 21
       versionCode 1
       versionName "1.0"
   }

buildTypes {
       release {
          minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
      }
sourceSets { main { java.srcDirs = ['src/main/java', 'src/androidTest/java'] } } }



dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    androidTestCompile 'org.robolectric:robolectric:2.4'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile group: 'junit', name: 'junit', version: '4.12'
  }
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题????

Sha*_*van 68

有时您可能会遇到简单的编译器问题并最终得到此消息。这发生在我身上。编译器问题没有直接指出,必须向下滚动堆栈跟踪才能找到问题所在。

在此输入图像描述


CLI*_*P Y 24

我遇到了同样的问题Test events were not received,我检查了我编写的函数,发现存在编译器错误。

我的解决办法是check the files/functions you are testing可能有编译错误

这可能会对遇到同样问题的人有所帮助。


Bri*_*ite 20

我假设您使用的是Android Studio 1.2版,这是目前的最新版本.

我认为您的代码没有任何问题.根据杰森阿特伍德的帖子,问题似乎与gradle缓存以前的结果有关,而不是再次运行它.如果你看一下"Gradle控制台",你会看到所有内容都说"UP-TO-DATE".但是,他建议在脚本参数中添加"--rerun-tasks"选项对我来说还不够.

除了为"--rerun任务",我不得不关闭过程中的积累,并迫使它来调用外部gradlew工具.要做到这一点,去...

File > Settings > Build, Execution, Deployment > Compiler
Run Code Online (Sandbox Code Playgroud)

然后取消选中"使用进程内构建"选项.希望未来的Android Studio版本能解决这个问题,我们可以重新启用该选项.

  • 大家好,当前 Android Studio 中这个选项在哪里? (9认同)
  • 在报告中,单元测试成功,但AS表示没有收到测试事件.我根据你的建议禁用了"使用进程内构建",现在我在AS中看到了结果.我在工具中讨厌这种事情.为什么他们不能按预期工作,没有用户花费数小时来处理未知错误,然后最终在网上搜索修复. (3认同)
  • 正如我之前提到的,它有效,但我有一个奇怪的问题.在报告中,单元测试似乎已经运行过一次.但在AS中,有"Gradle Test Executor 1"和"Gradle Test Executor 2",每次运行两次相同的测试.这对我来说不是一个严重的问题,但我能解决这个问题吗? (2认同)