【问题标题】:(Jacoco) code coverage for code shipped to Apache Spark?(Jacoco) 发送到 Apache Spark 的代码的代码覆盖率?
【发布时间】:2016-01-26 17:05:26
【问题描述】:

我们正在使用 jacoco 来衡量我们大部分系统的代码覆盖率,它运行良好。但是,该代码覆盖实用程序无法访问通过 spark-submit 发送到 Apache Spark 的代码。

互联网表明我们可以将 jacoco 附加到正在运行的 JVM 进程并让它从运行时收集覆盖率指标:http://www.javaworld.com/article/2074515/core-java/unit-test-code-coverage-with-maven-and-jacoco.html

尚不清楚是否可以使用 jacoco 代理来检测运行我们代码的 spark 驱动程序,以便测量我们已发布的代码的覆盖率。

很想听听任何过去尝试过这样做或类似事情的人的意见。

【问题讨论】:

    标签: java apache-spark code-coverage jacoco


    【解决方案1】:

    好的,在为此苦苦挣扎之后,看起来这样做的方法是通过在调用 spark-submit 时设置 spark.executor.extraJavaOptions

    例如:

    spark-submit --conf "spark.executor.extraJavaOptions=-javaagent:/Users/aron/dev/env/jacoco-0.7.4.201502262128/lib/jacocoagent.jar=destfile=/tmp/jacoco/jacoco.exec ,includes=com.mypackages.*"

    ... 将导致 spark 进程使用在运行代码时指定的 jacoco 代理来分析您的包(上例中的 com.mypackages.*),然后将代码覆盖率统计信息转储到文件中(/tmp /jacoco/jacoco.exec 例如)。

    您可以在http://spark.apache.org/docs/latest/configuration.html 上查看有关如何使用这些类型的参数调用 spark-submit 的详细信息。

    然后您可以指示 jacoco 使用统计转储来生成覆盖率报告!这是我要采取的方法,我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 2016-11-11
      • 2019-01-02
      • 2012-11-02
      • 1970-01-01
      • 2018-05-28
      • 2012-06-11
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多