我正在尝试检查我在Kotlin中编写的测试用例的代码覆盖率.当我执行时./gradlew createDebugCoverageReport --info,我的coverage.ec文件为空,我的报告显示我有0%的覆盖率.请注意,测试用例100%成功.谁能想到我的coverage.ec文件一直返回0字节的原因?
我到处搜寻都没有运气.
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'jacoco'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
testCoverageEnabled = true
}
release {
minifyEnabled false
testCoverageEnabled = true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
testOptions {
unitTests.all {
jacoco {
includeNoLocationClasses = true
}
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude …Run Code Online (Sandbox Code Playgroud) 我有一个简单的Kotlin课程,如下所示
class MyClass {
fun justSayHello(yes: Boolean): String {
if (yes) {
return "Hello"
} else {
return "Sorry"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有我的测试(在这里用Java编写,也可以在Kotlin中)
public class MyClassTest {
private MyClass myClass = new MyClass();
@Test
public void testFirst() {
myClass.justSayHello(true);
}
@Test
public void testSecond() {
myClass.justSayHello(false);
}
}
Run Code Online (Sandbox Code Playgroud)
当我在Android Studio 3.0 Beta-2中使用Coverage进行测试时classpath 'com.android.tools.build:gradle:3.0.0-beta2',没有报告任何报道.
但是,当我使用测试时classpath 'com.android.tools.build:gradle:2.3.3',报告了100%的覆盖率.
当我将源代码更改为Java时:
public class MyClass {
public String justSayHello(boolean yes) {
if (yes) {
return "Hello";
} else {
return "Sorry";
} …Run Code Online (Sandbox Code Playgroud)