有时我正在查看一些代码,我会搜索方法的用法(使用Resharper),并发现仅通过测试调用它。因此,它是有效的多余的,我可以删除它以及称其为称为的方法。

显然,将未使用的代码放在该位置,放慢构建和测试运行是没有意义的。我想要的是一个工具,可以告诉我所有仅通过测试访问的生产代码的位置。

我有一个完整的Resharper版本,也有一个Ndepent的试用版,但还没有找到如何使用其中的任何一种来获得我想要的结果(而无需付费)。我怀疑Ndepent的完整版本可能有可能,但是还有其他人知道的工具吗?

如果上下文有所帮助,则解决方案为和ASP.NET网站,其中许多功能由WCF服务处理。因此,代码大部分的唯一有效输入点是服务方法。这些测试在自己的单独项目中。

我开始了赏金,因为我确定其他人必须曾经解决过并以前解决了这个问题!

有帮助吗?

解决方案

手动与Ndectippor一起查看 Dependency Matrix. 。在这里,您可以看到仅由单元测试组件使用的方法。

我不确定您是否可以使用试用版来编写自己的CQL查询。但是使用Pro版本,您可以使用这样的查询:

SELECT METHODS WHERE IsUsedBy "ASSEMBLY:NAME_OF_THE_UNIT_TEST_ASSEMBLY" 
AND !(IsUsedBy "ASSEMBLY:NAME_OF_ANOTHER_ASSEMBLY" OR IsUsedBy "ASSEMBLY:ANOTHER_NAME")

为此,您必须创建一个了解所有组件的Ndeppent项目。

为了 NAME_OF_THE_UNIT_TEST_ASSEMBLY 您必须插入单元测试组件,在第二部分中,您必须使用ISUSEBY指定生产代码组件,并与OR分开。

其他提示

一种非技术方法是将您从解决方案中暂时删除测试项目,然后使用Visual Studio的代码分析(或FXCOP)来定位其他任何方法都没有调用的任何方法。

您可以使用一些自定义查询来使用Nddection ...那只是我头顶的顶部,从不使用它,但它应该起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top