我們已經在Grails 2.4.4上使用代碼覆蓋插件的v2.0.3-3運行覆蓋。Cobertura覆蓋grails
考慮像下面一個簡單的控制器代碼:
class TestController {
def index() {}
}
和簡單的斯波克測試下同:
@TestFor(TestController)
class TestControllerSpec extends Specification {
def "test index"() {
when:
controller.index()
then:
response != null
}
}
如何產生的覆蓋報告如下:
<class name="package.TestController" filename="package/TestController.groovy" line-rate="1.0" branch-rate="0.1" complexity="0.0">
<methods>
<method name="index" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="0.1">
<lines>
<line number="8" hits="1" branch="true" condition-coverage="10% (1/10)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="8" hits="1" branch="true" condition-coverage="10% (1/10)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
爲什麼報告爲1/10條件只包括在內?
注:我已經使用了DisableOptimizationsTransformation-0.1-SNAPSHOT.jar在這裏提到: Grails/Cobertura report - conditional coverage doesn't make sense
我們已經用在您發佈相同的方式罐子,但不成功。它仍然顯示以上。 此外,我們僅將jar用於測試作業,並跳過了主版本。 – raVan
我能想到的唯一其他選項僅適用於使用JDK 1.7或更高版本的情況。如果您使用的是JDK,那麼您可以使用啓用invokeDynamic的groovy(-indy)的命令行選項。這裏有一個更詳細的鏈接:[link](http://groovy-lang.org/indy.html) –