Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-测试对.Single()、.First()等的所有调用是否符合编码标准_C#_Code Analysis_Xunit_Xunit.net_Roslyn Code Analysis - Fatal编程技术网

C#-测试对.Single()、.First()等的所有调用是否符合编码标准

C#-测试对.Single()、.First()等的所有调用是否符合编码标准,c#,code-analysis,xunit,xunit.net,roslyn-code-analysis,C#,Code Analysis,Xunit,Xunit.net,Roslyn Code Analysis,我们使用一些扩展方法,可以编写如下内容: .Single(e => $"{nameof(SomeParameter)}: {SomeParameter}, ...") 而不仅仅是 .Single() 其中e是一个例外 这大大增加了日志记录的体验,因为上面的变量记录所有参数,而不是底部变量产生的无用的“序列不包含元素” 我需要编写一个测试,它将查找所有不符合要求的代码,例如调用.Single() 当然,我可以使用正则表达式搜索或纯文本搜索从解决方案根目录开始查找所有CS文件,也许这就是方

我们使用一些扩展方法,可以编写如下内容:

.Single(e => $"{nameof(SomeParameter)}: {SomeParameter}, ...")
而不仅仅是

.Single()
其中
e
是一个例外

这大大增加了日志记录的体验,因为上面的变量记录所有参数,而不是底部变量产生的无用的“序列不包含元素”

我需要编写一个测试,它将查找所有不符合要求的代码,例如调用
.Single()

当然,我可以使用正则表达式搜索或纯文本搜索从解决方案根目录开始查找所有CS文件,也许这就是方法。我只是想知道是否已经有了一个简单且已知的解决方案

以下是我需要的:

  • 轻松添加/删除规则:例如,查找所有具有
    .Single()
    的文件,查找所有具有
    .Single(
    但不是
    .Single(e=>$”
    )形式的文件-这是为了说明Where+Single code的组合,等等

  • 测试应该从xUnit运行


  • 非常感谢!

    您应该编写一个Roslyn分析器,它将作为构建的一部分运行(以及在Visual Studio中键入),并根据需要提供编译错误(或警告)

    分析器可以完全访问编译器中生成的语法树和语义模型,并可以检查对特定方法的访问


    您应该编写一个Roslyn analyzer,它将作为构建的一部分运行(并在Visual Studio中键入),并根据需要提供编译错误(或警告)

    分析器可以完全访问编译器中生成的语法树和语义模型,并可以检查对特定方法的访问


    您正在寻找一个Roslyn分析器,它将作为构建的一部分运行,而不是从xUnit运行。@SLaks很棒,谢谢。谷歌与我们同在,它将在合理的时间内产生结果。您能缩小“方向”吗,例如,提供相关的参考资料、示例等?这可以作为一个答案。非常感谢!您正在寻找一个Roslyn分析器,它将作为构建的一部分运行,而不是从xUnit运行。@SLaks很棒,谢谢。谷歌与我们在一起,它将在合理的时间内产生结果。您能否缩小“方向”的范围,例如,提供相关参考资料、示例等?这些都可以作为答案。非常感谢!