小编nei*_*llb的帖子

Jacoco和Unit使用android-gradle-plugin> = 1.1测试代码覆盖率

我最近开始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)

android unit-testing jacoco android-gradle-plugin

36
推荐指数
2
解决办法
2万
查看次数

修改Rails 3中默认ActionController LogSubscriber的日志格式和内容

语境:

在rails 3项目中,我想(大量)自定义ActionController中"Processing"和"Completed in"日志行的格式和内容.这是为了让它们与旧版rails 2.3应用程序的(也是自定义)格式相匹配,允许重复使用各种分析工具.使它们成为固定字段(通过在必要时使用占位符)也可以更容易地使用(例如)awk对它们进行即席查询,或者在没有智能解析的情况下将它们加载到db或splunk中.

我通过分叉导轨和修补有问题的LogSubscriber 快速而严谨地实现了这个目标,但我现在正在寻找正确的方法.

这是我想我想做的事情:

  1. 创建一个LogSubscriber继承ActionController::LogSubscriber.
  2. 仅覆盖start_processingprocess_action方法.
  3. 取消订阅原文ActionController::LogSubscriber,一旦加载了类,就会(遗憾地)注册自己. 这是我坚持的步骤.
  4. :action_controller使用我的自定义订阅者attach_to.

我注意到,如果默认ActionController的日志订阅者的连接是作为配置步骤而不是类加载完成的,事情会更容易.

题:

假设上面概述的方法是合适的,我如何取消订阅或取消附加默认日志订阅者ActionController::LogSubscriber?基类ActiveSupport :: LogSubscriber提供了attach_to但没有分离的方法.

或者,在上面提到的类ActionController :: LogSubscriber中,改变(或完全抑制)两个方法(start_processing,process_action)的行为的最简洁方法是什么.

当然,我也欢迎任何其他(可维护的)方法,它可以完全自由地定制所提到的两行的日志格式.

不合适的方法:

  • 我的问题不能通过添加仪器来解决,正如mnutt很好地记录的那样.
  • 我想避免猴子修补,或者在rails实现(不是接口)改变时可能破坏的方式进行黑客攻击.

参考文献:

ruby logging ruby-on-rails ruby-on-rails-3

8
推荐指数
1
解决办法
2854
查看次数