c# - 用于评估可测试性的 C# 代码解析器?

标签 c# unit-testing parsing testability

我正在尝试编写一个程序,允许我为其提供一组 C# 代码文件并分析它们 testability problems 。我从前面链接中提供的 4 个开始。

最终目标是创建一份报告,其中包含所有文件、它们可能存在的任何可测试性问题以及可能观察到这些问题的位置的特定代码注释(如果适用)。我想要帮助的是选择一些工具来使解析代码的工作变得更容易;我可以将所有内容作为字符串读取,但在这种情况下从代码中排序来分析它是非常困难的。

到目前为止,我已经评估了以下内容:

  • FxCop (不适用于 .dll 以外的任何内容,一些测试项目是在 Controller 或演示器中具有可测试逻辑的 Web 项目)
  • Code Contracts (不是我需要的;这无助于发现问题)
  • Pex (同上)
  • NRefactory (可能很有趣,但文档和使用信息不存在,并且演示已损坏,即使在 Windows 上安装了 gtk/mono)
  • CSharpCodeProvider (.Parse 方法返回 NotImplementedException)

就我正在寻找的内容而言:

我至少希望检测基本对象结构和访问器对象以进行导航(例如,文件对象具有命名空间属性,其中包含,每个都有成员构造函数方法等的集合)。显然,如果有工具可以变得越来越复杂和详细,那将是令人惊奇的,但仅仅拥有这些工具来让我处理小的、集中的字符串将是一个完全的天赐之物。

提前致谢。

最佳答案

如果您可以使用预发布代码,您可能需要查看roslyn ,即“编译器即服务”:

Traditionally, compilers are black boxes – source code goes in one end and object files or assemblies come out the other end. The Roslyn [project] changes that model by opening up the Visual Basic and C# compilers as APIs. These APIs allow tools and end-users to share in the wealth of information the compilers have about code.

但是请注意,解释您得到的内容(语法树)可能仍然需要大量工作。

关于c# - 用于评估可测试性的 C# 代码解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435834/

相关文章:

c# - Signalr 中心和 Twitter 流媒体

unit-testing - 使用Resharper和Phantom JS调试 Jasmine 测试

python - 使用 Python Parse 获取由数字、字母、空格和符号组成的字符串

ruby - 将嵌套哈希转换为 Ruby 中以点分隔的字符串的一行代码?

javascript - HTML 将文本转换为链接

c# - MVC 5 项目中的 Entity Framework 6.0 不工作

c# - ModelBinder 验证在使用反射的 getter 上中断

c# - 如何正确实现为异步使用而设计的接口(interface)?

c# - 在单元测试中将 DI 与没有依赖关系的模块/类一起使用是否有令人信服的理由?

ruby - 在 Ruby 中设置测试套件