测试自定义StyleCop规则:使用ReSharper testrunner时,调用AddSourceFile()始终返回false

时间:2014-01-08 08:47:17

标签: c# unit-testing resharper stylecop

我在StyleCop forum中问过这个问题,但从未得到答案。


我发现了许多使用MSTest测试自定义规则的示例,我让that one能够轻松地工作。

但是这些测试在使用ReSharper testrunner时不起作用。由于某种原因,呼吁

StyleCopConsole.Core.Environment.AddSourceFile(...)
每当我通过 Test View 使用VS 2010的内置testrunner以外的东西时,

总是返回false。由于 Test View 可能是我用来运行测试的用户友好工具,我宁愿使用ReSharper。很多。

我的测试程序集中有一个名为Resources的子文件夹,其中包含我的测试的无效源文件和 Settings.StyleCop 文件。它们被正确地复制到测试输出文件夹(我在调用 AddSourceFile(...)之前使用File.Exists添加了额外的检查以确保这一点。

我添加了对 StyleCop.dll,StyleCop.CSharp.dll和StyleCop.CSharp.Rules.dll 的引用,但没有解决问题。

使用ReSharper运行程序 StyleCopCore.Parsers 集合始终为空。当我使用VS跑步者时,它包含 CsParser

我缺少什么想法?

1 个答案:

答案 0 :(得分:0)

StyleCopConsole.Core.Environment期望您已为您提供的文件扩展名注册了解析器。因此,您可能希望将CsParser实例添加到Parsers集合中,并将扩展名设置为.cs

幸运的是,StyleCop的源代码是可用的,因此可以检查代码路径可能返回false的原因并查看是否已通过该前提条件。