gpt4 book ai didi

c# - 如何查找仅由测试调用的代码

转载 作者:太空狗 更新时间:2023-10-29 19:40:05 24 4
gpt4 key购买 nike

偶尔我在看一些代码,我搜索一个方法的用法(使用 resharper)并发现它只被测试调用。所以它实际上是多余的,我可以删除它和调用它的方法。

显然,将未使用的代码放在各处是没有意义的,这会减慢构建和测试运行的速度。我想要的是一种工具,它可以告诉我只有测试才能访问的所有生产代码位在哪里。

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

如果上下文有帮助,解决方案是 ASP.net 网站,其大部分功能由 WCF 服务处理。因此,大部分代码的唯一有效入口点是服务方法。测试在它们自己单独的项目中。

我已经开始悬赏,因为我确信其他人之前一定遇到过并解决过这个问题!

最佳答案

使用 NDepend 手动查找应该可以使用 Dependency Matrix。在那里您可以看到哪些方法仅由单元测试程序集使用。

我不确定您是否可以使用试用版编写自己的 CQL 查询。但是对于专业版,您可以使用这样的查询:

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

为此,您必须创建一个知道所有程序集的 NDepend 项目。

对于 NAME_OF_THE_UNIT_TEST_ASSEMBLY,您必须插入单元测试程序集,在第二部分中,您必须使用 IsUsedBy 指定生产代码程序集并用 OR 分隔。

关于c# - 如何查找仅由测试调用的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com