Roslyn-动态(运行时)流

本文关键字:运行时 动态 Roslyn- | 更新日期: 2023-09-27 17:57:32

我开始和Roslyn一起玩。解析代码和进行静态分析相对容易。

我想知道是否可以将它用于运行时分析?我想调用一个带有参数的方法,并检查执行了哪些分支。换句话说,我需要一个运行时执行计划。这是对罗斯林可以做的事情吗?

Roslyn-动态(运行时)流

我不知道最好的解决方案是什么,在大多数情况下,我会听从SLaks的建议。

然而。。。

如果你想和罗斯林一起做这件事,你当然可以。事实上,在我的公司也做过类似的事情(我们将单元测试映射到它们调用的方法)。

以下是我们方法的高级概述。

  1. 重写解决方案中的每一个函数,以便在某个全局静态查找/数据结构中命中它时进行日志记录。您可以一次迭代一个文件,并在每个文件上使用CSharpSyntaxRewriter。(在您的情况下,您将在分支或逐行的基础上进行重写)

  2. 每次运行一个单元测试,并通过分析全局查找来查看运行的内容。

  3. 聚合所有单元测试的结果,以了解完整的代码覆盖率。