问题标签 [code-coverage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1888 浏览

用于检查实时 Java 应用程序的实时代码覆盖率查看器工具?

我一直在寻找旨在检查实时 Java 应用程序的代码覆盖率查看器,主要是在 Tomcat 等应用程序容器内运行的 webapps。当然,有很多不错的工具可以获取单元测试覆盖率的自动报告,但我的目标更像是实时了解不熟悉的 Java 应用程序在特定用户交互中的作用。

Eclipse Java 调试器(使用 JPDA 进行远程调试)非常有用,但前提是您已经熟悉应用程序的体系结构。理论上,我可以使用一些覆盖工具并将其设置为每两秒自动刷新静态 HTML 覆盖报告,但这远非最佳。

对于 Adob​​e Flex,FlexCover 正是我想要的,它提供了一个几乎实时可视化覆盖范围的覆盖查看器工具,而且设置起来相对简单,至少对于了解这些内容的人来说是这样。那么有没有类似的易于设置的 GUI 工具,免费或非免费的,适用于 Java 吗?

0 投票
4 回答
386 浏览

我应该使用代码覆盖率工具吗?

我有兴趣为我的下一个 .NET 项目使用代码覆盖工具,但想知道这对我是否有必要?我是我工作的公司中唯一的开发人员,那么使用 NCover 对我有好处,还是仅适用于使用持续集成的大型团队?谢谢

0 投票
2 回答
536 浏览

覆盖不显示 virtualenv 中的执行行

我有一个项目,我正在尝试运行有覆盖范围的鼻子测试。我在 virtualenv 中运行。当我跑

测试运行良好,但覆盖率并未显示任何代码已执行(覆盖率均为 0%)。

覆盖版本 3.0b3、Darwin 内核版本 9.7.0、Mac OS X 10.5.7、setuptools 0.6c9、nose 0.11.1、Python 2.5.4

0 投票
5 回答
4716 浏览

我可以在启用所有日志记录和禁用所有日志记录的情况下自动执行 JUnit 测试用例吗?

我找到了解决方案,请参阅下面的我自己的答案。有人有更优雅的吗?

我想这样做以增加代码覆盖率并发现细微的错误。

假设要测试以下类:

和以下测试类:

像 Cobertura 这样的代码覆盖工具将正确报告只有一些条件分支已被检查。

info 和 debug 为记录器激活或停用。

除了在您的覆盖范围内看起来很糟糕之外,这还带来了真正的风险。

如果 if(logger.isDebugEnabled()) 里面的代码有一些副作用怎么办?如果您的代码仅在启用 DEBUG 时才有效,并且在日志级别设置为 INFO 时惨遭失败怎么办?(这实际上发生在我们的一个项目中:p)

所以我的结论是,包含记录器语句的代码应始终在启用所有日志记录的情况下测试一次,并在禁用所有日志记录的情况下测试一次......

有没有办法用 JUnit 做类似的事情?我知道如何全局启用或禁用我在 Logback 中的所有日志记录,所以问题是:如何执行两次测试,一次启用日志记录,一次禁用日志记录。

ps 我知道这个问题,但我不认为这是重复的。我不太关心绝对覆盖率值,而是关心可能包含在 if(logger.isDebugEnabled()) 中的微妙、难以发现的错误。

0 投票
5 回答
76842 浏览

使用 Cobertura 从代码覆盖范围中排除方法

有没有办法将代码排除在 Cobertura 覆盖率报告中?我们有一些方法不应包含在覆盖率报告中,因此不会降低覆盖率。

我知道 Clover 有这样的功能,但我没有发现 Cobertura 有任何类似的功能。

0 投票
1 回答
2199 浏览

您如何安装和使用 grails 测试覆盖率?

我试图让 grails 代码覆盖插件根据这些方向工作:http: //www.grails.org/Test+Code+Coverage+Plugin

我做了:grails install-plugin code-coverage

然后:grails test-app

基于此,我希望看到一个 tests/report/cobertura 目录,但是在运行“grails test-app”之后我没有在我的项目中看到任何内容。

我已经安装了 grails 1.1 并创建了一个新应用程序。我需要做任何其他事情才能看到这些报告吗?任何地方都有更好的说明吗?

谢谢

0 投票
6 回答
14353 浏览

Scala 的代码覆盖率工具

Scala 有哪些可用的代码覆盖工具?

我有 Scala 规范测试和 Hudson 持续集成设置。有什么我可以连接到这个设置来测量和跟踪代码覆盖率的东西吗?

0 投票
5 回答
1215 浏览

代码覆盖率不好

我已经在我的计算机上安装了仅使用 UnitTest 许可证(仅 Unit Test 许可证)作为 Visual Studio 2005 插件( cpptest_7.2.11.35_win32_vs2005_plugin.exe )的 C++Test。

我有一个类似于以下的示例:

就我而言,在运行覆盖工具后,我得到以下结果(类似于前面提到的功能):

我真的不明白为什么我在 PathCoverage (PC) 上没有 100% 的覆盖率。此外,如果有 C++Test Parasoft 经验的人可以为我解释 MCDC 覆盖率低,那就太好了。

我应该怎么做才能增加覆盖率?因为在这种情况下我没有想法。欢迎对文档(某些部分)的指示。

谢谢,

尤利安

0 投票
2 回答
8139 浏览

如何从 Emma 中删除/过滤/忽略某些包(代码覆盖率)

我试图从我的报告中删除一些包并且遇到了问题。

有人能给我一些帮助吗?

我在我的ant进程中使用 EMMA。


<!-- Generate the emma report both in xml and html -->
<emma>
  <report
    sourcepath="${build.report.src}"
    metrics="class:${coverage.classes.min},method:${coverage.methods.min}">     <fileset dir="${build.report.junit.data.dir}">
      <include name="*.emma"/>
    </fileset>
    <html outfile="${build.report.reports}/emma/raw.html" depth="method"/>
    <xml outfile="${build.report.tmp}/emma.xml" depth="method"/>
  </report>
</emma>


我试过使用:
<filter excludes="com.my.package.*"/>

没有成功:(

0 投票
15 回答
5842 浏览

代码覆盖率的替代指标是什么?

代码覆盖率可能是最具争议的代码指标。有人说,你必须达到 80% 的代码覆盖率,有人说,这是肤浅的,并没有说明你的测试质量。(请参阅Jon Limjap 关于“单元测试的合理代码覆盖率是多少(以及为什么)?”的好回答。)

人们倾向于衡量一切。他们需要比较、基准等。
项目团队需要一个指针,他们的测试有多好。

那么代码覆盖率的替代方案是什么?有什么比“我触摸了这行代码”更能说明问题的好指标?
有真正的替代品吗?