如何在C#解决方案中找到所有方法

时间:2013-11-26 09:17:31

标签: c# unit-testing methods .net-reflector

我需要在C#解决方案/项目中列出所有方法名称及其单元测试。

你对此有什么想法吗?

更新:你知道任何C#源解析器吗?

3 个答案:

答案 0 :(得分:5)

看起来您需要代码覆盖率工具,它可以分析您的解决方案并显示哪些代码行已经过测试,哪些代码未经过测试。请查看NCoverTestDriven.NETNCrunch

请记住,仅仅为某些方法查找单元测试名称是不够的,因为方法内部可能有许多代码执行路径,其中一些可能没有被测试覆盖。

答案 1 :(得分:1)

您可以使用反射来查找所有方法(Assembly.GetTypes()返回所有类型,type.GetMethods()返回其方法)。由于单元测试也是程序,因此您可以通过查找[TestMethodAttribute](取决于您正在使用的测试框架)和method.GetCustomAttributes()来迭代单元测试方法。

找出每种测试方法所做的事情会更加困难,因为您对测试所包含的内容没有任何限制。代码覆盖率工具可以准确地向您显示代码的哪些部分已经过测试,甚至是每个方法中的内部部分(例如,涵盖了if语句的哪些分支)。

答案 2 :(得分:0)

视觉工作室中有一个称为“资源视图”的窗口,它将枚举树视图结构中的所有类和方法,然后在选择时会将光标移至相关文件/行。