2016-06-27 35 views
26

我有一个适用于我的Android应用程序的测试套件,所有单元测试运行良好。但是,每当我对我做单元测试类的一个单一的变化(例如,ModelUnitTests),试图再次运行该上课的时候,我如果我做了gradle这个干净,然后运行得到这个消息类未找到:在Android Studio中运行单元测试时的空测试套件

Process finished with exit code 1 
Class not found: "xxx.xxxxxx.xxx.ModelUnitTests"Empty test suite. 

班级再次测试,运行良好(但需要4分钟才能完成......),但是新的更改将再次打破。

有关如何解决此问题的任何建议?我不确定应该发布哪些测试配置。我使用单元测试神器和我的测试中位于

回答

27

我有一个类似的问题,这是因为我第一次创建了一个具有相同类名的单元测试。当我创建仪表单元测试时,我得到了错误。

为了解决这个问题,我去了运行图标左侧的编辑配置。然后在单元测试下,这是'冲突'类,我删除了。点击应用/确定。然后,我右键点击班级名称,点击跑步和瞧,它的工作。

+1

在我的情况下,原因是我已切换到发布构建配置在某个点一个不同的applicationId。即使我切换回调试配置,Android Studio仍然试图使用发布applicationId进行测试。 – aaronvargas

1

使用较低版本的Gradle解决它的 module/src/test/package文件夹

dependencies { 
    classpath 'com.android.tools.build:gradle:2.0.0' 

这将对目前

+1

这让我伤心...... – Roel

+0

这不是一个解决方案,在我的情况下,它并没有帮助.... – Roel

11

我有做同样的问题。我注意到,测试下的方法被显示在运行/调试配置下拉为:
TestClassName.testMethod()
而不是正确:
testMethod()

我通过删除TestClass.testMethod()运行/调试配置固定它发生此错误的测试方法,然后重新运行测试。

如果再现了同样的问题,删除不正确的运行/调试配置,然后在测试方法右键单击并选择:
Create 'testMethod()'...
(而不是运行或调试)创建工作配置。

-1

我有同样的问题。我创建了套件类,它解决了问题

0

如果使用Robolectric,检查测试的$MODULE$/test目录而不是$MODULE$/androidTest

它发生在我身上,花了大概一个小时才知道它

0

如果你在一个团队工作,检查所有build.gradle文件,以确保没有人禁用测试任务。我有“空测试套件”的错误,并最终发现它是由在项目根build.gradle以下原因造成的:

gradle.taskGraph.whenReady { 
    tasks.each { task -> 
     if (task.name.contains("Test")) 
     { 
      task.enabled = false 
     } 
    } 
} 
0

在我而言,这是通过在@BeforeClass方法抛出的异常的原因。

相关问题