我正在尝试将Jacoco与Websphere集成以通过手动测试获得代码覆盖率。 我已将JVM参数设置如下
![-javaagent:C:\Shankara\Software\jacoco-0.7.2.201409121644\lib\jacocoagent.jar=destfile=C:\Shankara\Software\jacoco.exec,append=true,includes=com.*][1]
我能够成功获得exec文件但是覆盖范围仍然是红色。请紧急帮助我
答案 0 :(得分:1)
您是否停止了目标JVM实例。
在您执行此操作之前,您将无法通过运行非单元测试获取代码覆盖率数据(源主代码)。
试试这个:
1.然后附上jacocoagent.jar并传递params(就像你已经完成的那样)
2.运行测试(手动/自动化,将执行/覆盖主要源代码),然后
3.然后停止目标JVM实例/会话(即WebSphere)
你会发现雅可可文件的大小会比你以前得到的多一点。
使用此jacoco exec(在停止目标JVM实例后获得)运行jacocoTestReport以获取最终代码覆盖率%。
注意:如果您不想停止运行应用程序/ web服务的目标JVM会话/实例,请阅读Jacoco文档,因为还有一种方法可以执行此操作。
见这里:http://www.eclemma.org/jacoco/trunk/doc/agent.html 特别是参数:
dumponexit 如果设置为true,则会在VM关闭时写入覆盖数据。只有在指定了任一文件或输出为tcpserver / tcpclient并且在VM终止时打开了连接时,才能写入转储。真
输出用于写入覆盖数据的输出方法。有效选项包括:
file: At VM termination execution data is written to the file specified in the destfile attribute.
tcpserver: The agent listens for incoming connections on the TCP port specified by the address and port attribute. Execution data is written to this TCP connection.
tcpclient: At startup the agent connects to the TCP port specified by the address and port attribute. Execution data is written to this TCP connection.
none: Do not produce any output.
请参阅下面的安全注意事项。
地址输出方法为tcpserver时要绑定的IP地址或主机名,或者输出方法为tcpclient时要连接的IP地址或主机名。在tcpserver模式下,值“*”使代理接受任何本地地址上的连接。环回接口
port 当输出方法是tcpserver时绑定到的端口,或者当输出方法是tcpclient时连接到的端口。在tcpserver模式下,端口必须可用,这意味着如果多个JaCoCo代理应在同一台机器上运行,则必须指定不同的端口。