所以我已经设置了一个带有android的gradle项目,并尝试运行一些测试。不幸的是,他们似乎并不乐观。我可能会错过一些明显的东西,但这里有......
我正在运行gradle 1.11并且我理解了应该用于测试的新文件夹(因为我相信?)的文档。
所以我有我的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 :(得分: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