【问题标题】:How to find unexecuted code [duplicate]如何找到未执行的代码[重复]
【发布时间】:2009-10-19 22:36:17
【问题描述】:

你好,

我对一个项目(1000+)进行了大量的健身测试。随着时间的推移,随着功能的变化,共享设备的来来去去,我们留下了未使用的孤立代码。但是怎么找呢?

对于那些不知道 fit 工作原理的人,您有一个类似这样的 wiki 页面:

|当用户添加 | 1 |和 | 2 |他回来了| 3 |

在运行时映射到如下方法:

public bool WhenAUserAddsAndHeIsReturned(int first, int second, int expectedResult){

    return ((first + second) == expectedResult)
}

手动查找所有这些映射将是一件苦差事,编写脚本来完成这将是一项漫长而艰巨的任务。我相信一定有更好的解决方案。

是否有一个实用程序可以在测试运行时监控fixture dll,然后返回所有未运行的类和方法的列表?

【问题讨论】:

  • @RobertHarvey "fitnesse" 是一个测试框架
  • @BoldAsLove:您正在回复近 13 岁的评论。为避免以后出现此问题,我已删除该评论。

标签: c# reflection fitnesse


【解决方案1】:

您要查找的关键字是覆盖率Question #276829 涵盖了您的 C#/.NET 平台的一些选项。

【讨论】:

  • +1 短而甜。没有足够的人参考现有的好答案。
  • 如果他在单元测试期间寻求 100% 的方法覆盖率,那会做到这一点,但这是否告诉您这些方法 [would] 是否真的在正常程序运行期间被执行?
  • 我知道 nCover 之类的东西会在运行单元测试时给你这样的数据......事实上,nCover 有它自己的 nUnit 运行器作为它的过程的一部分。但我不知道它可以用于在其他情况下分析 dll。我得调查一下。
  • Robert:他要求指出在他的测试运行时没有运行的代码。这就是代码覆盖工具的作用。他打算用它来修剪死代码这一事实并没有使它成为这项工作的错误工具。不过,您是对的,值得检查每一段未触及的代码,看看它是真的死了还是只是未经测试。
【解决方案2】:

与覆盖率相关的是分析工具。有关 .Net 建议,请参阅 this post。这些工具会告诉您在执行期间您的时间都花在了哪里,不一定是您的代码没有去的时间,但您可以使用它们来查找死代码。

【讨论】:

    【解决方案3】:

    eswald 是对的,Coverage 工具正是您所需要的。我们的 ccNet 构建服务器使用 NCover 运行我们的 Fitnesse 测试(和单元测试),以检查我们在应用程序代码的自动化测试方面做得如何。 这个问题很好地提醒您检查死灯的覆盖率报告。

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2021-10-28
      • 1970-01-01
      • 2015-07-06
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多