我最近开始android-gradle-plugin
在我的一个项目中集成1.1.0.该项目用于robolectric 2.4
运行单元测试.
这是一个具有非常复杂依赖关系的多模块项目(某些模块依赖于其他模块).像这样的东西:
--> application-module (dependsOn: module1, module2, module-core)
--> module1 (dependsOn: module-core)
--> module2 (dependsOn: module-core)
--> module-core (dependsOn: module3, module4)
--> module3 (library dependencies)
--> module4 (library dependencies)
Run Code Online (Sandbox Code Playgroud)
有关更清晰的图片,请参阅jacoco-example项目.
我试图集成JaCoCo来生成单元测试的报告,但在我看来,它只运行androidTests
基本上是仪器测试.
经过一些谷歌搜索后,我遇到了一些关于GitHub和其他文章的项目,但他们主要关注的是以前的版本,android-gradle-plugin
或者正在使用其他第三方插件android-unit-test
,例如这里.
可能是我失去了谷歌的能力.但有人能指出我可以找到一些关于android gradle插件中的新内容以及如何仅针对单元测试运行jacoco任务的文档吗?
UPDATE
采用了nenick的例子中的脚本:
apply plugin: "jacoco"
configurations {
jacocoReport
}
task jacocoReport(dependsOn: 'testDebug') << {
ant {
taskdef(name:'jacocoreport',
classname: 'org.jacoco.ant.ReportTask',
classpath: configurations.jacocoReport.asPath)
mkdir dir: "${buildDir}/test-coverage-report"
mkdir dir: "${buildDir}/reports/jacoco/test/"
jacocoreport …
Run Code Online (Sandbox Code Playgroud) 语境:
在rails 3项目中,我想(大量)自定义ActionController中"Processing"和"Completed in"日志行的格式和内容.这是为了让它们与旧版rails 2.3应用程序的(也是自定义)格式相匹配,允许重复使用各种分析工具.使它们成为固定字段(通过在必要时使用占位符)也可以更容易地使用(例如)awk对它们进行即席查询,或者在没有智能解析的情况下将它们加载到db或splunk中.
我通过分叉导轨和修补有问题的LogSubscriber 快速而严谨地实现了这个目标,但我现在正在寻找正确的方法.
这是我想我想做的事情:
LogSubscriber
继承ActionController::LogSubscriber
.start_processing
和process_action
方法.ActionController::LogSubscriber
,一旦加载了类,就会(遗憾地)注册自己. 这是我坚持的步骤.:action_controller
使用我的自定义订阅者attach_to
.我注意到,如果默认ActionController的日志订阅者的连接是作为配置步骤而不是类加载完成的,事情会更容易.
题:
假设上面概述的方法是合适的,我如何取消订阅或取消附加默认日志订阅者ActionController::LogSubscriber
?基类ActiveSupport :: LogSubscriber提供了attach_to但没有分离的方法.
或者,在上面提到的类ActionController :: LogSubscriber中,改变(或完全抑制)两个方法(start_processing,process_action)的行为的最简洁方法是什么.
当然,我也欢迎任何其他(可维护的)方法,它可以完全自由地定制所提到的两行的日志格式.
不合适的方法:
参考文献: