2014-03-28 109 views
1

所以我用android设置了一个gradle项目并试图运行一些测试。不幸的是,他们似乎没有。这可能是我错过了一些明显的东西,但在这里...Gradle 1.11 androidTest类没有运行

我运行gradle 1.11,据我所知,文件是新文件夹(自0.9我相信?),应该用于测试。

所以,我有我的TestClass ::

package se.coinhunter.multigradle.test; 

import org.junit.Test; 
import static org.junit.Assert.*; 

public class HelloAndroidTests { 

    @Test 
    public void testHelper() { 
     assertEquals(1,1); 
     } 
    } 

} 

生活在src/androidTest这里是我的build.gradle:

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 

    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile project(':MultiGradleSubmodule') 
} 

这是在提到一个多项目构建和子模块依赖关系块是一个普通的java项目,它有自己的scource和单元测试运行相当顺利。我能够指定它应该告诉我什么时候运行它的测试,并给我一些反馈,并且工作正常。该项目使用

test { 
    testLogging { 
     events 'started', 'passed' 
    } 
} 

在其“build.gradle”中实现。对于android项目,我没有遇到过这样的事情。整个项目建立并运行,但我无法获得测试运行,或者他们正在运行,但我没有得到任何输出。

回答

0

您正在使用jUnit 4(包含名称为“org.junit”的@Test注释)。 Android gradle仅适用于jUnit 3(包名称“junit.framework”,没有注释)。

Android测试在设备或仿真器上的Dalvik虚拟机上运行,​​因此测试类还应该扩展“AndroidTestCase”(或Android中的其他junit子类之一 - 取决于您测试的内容)。

更新:还添加以下到默认配置:

testInstrumentationRunner "android.test.InstrumentationTestRunner" 

testFunctionalTest true 

运行使用

gradle connectedCheck 
+0

感谢您的回复测试。到目前为止,我只需要运行一些简单的单元测试来确认支持类的逻辑就像他们应该那样工作。我改变了类来扩展AndroidTestCase,我删除了org.junit的导入,并按照你的建议替换为junit.framework。它仍然建立良好,但它看起来没有在我执行gradle clean build时进行测试。构建任务应该做组装和测试,所以一定有其他东西我失踪.. – Coinhunter

+0

@Coinhunter - 它不是很清楚你的帖子,但是你的测试类在“src/androidTest/java”?你的帖子似乎暗示他们可能不在“androidTest”下的“java”目录中。您可能还需要通过添加testInstrumentationRunner“android.test.InstrumentationTestRunner” 和testFunctionalTest true来更改“defaultConfig”。看到我更新的答案。 – AndroidGuy

+0

对不起,我可能已经做得更清楚了。该测试确实在src/androidTest/java中。我加了你提到的两条线,但是没有,仍然没有问题,但没有给我任何迹象表明这些测试实际上是在跑步。 – Coinhunter