Ely*_*lye 13 android code-coverage jacoco kotlin android-studio-3.0
我有一个简单的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)
它适用于两个gradle构建工具
在我看来'com.android.tools.build:gradle:3.0.0-beta2',Kotlin的测试覆盖率测量值已经下降.
我错过了什么吗?我可以在Kotlin获得测试报道吗?
如果有人仍在寻找解决方案,则添加gradle任务以将案例从tmp目录复制到coverage输出所查找的目录中有助于解决此问题.
例如,将copyTestClasses添加到模块gradle文件中
task copyTestClasses(type: Copy) {
from "build/tmp/kotlin-classes/debug"
into "build/intermediates/classes/debug"
}
Run Code Online (Sandbox Code Playgroud)
在尝试使用gradle指向它们之前,可以帮助手动查找项目中的两个目录,以确保指向正确的位置(flavor会更改您需要指向的目录)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |