我在StyleCop forum中问过这个问题,但从未得到答案。测试自定义StyleCop规则:使用ReSharper testrunner时调用AddSourceFile()始终返回false
我发现很多例子使用MSTest的测试自定义规则和我that one轻松足够的工作。
但是,使用ReSharper testrunner时,这些测试不起作用。出于某种原因,在调用
StyleCopConsole.Core.Environment.AddSourceFile(...)
每当我用比VS 2010以外的东西总是返回false的通过测试视图内置的TestRunner。因为测试视图可能是我用于运行测试的最不用用户友好的工具,我宁愿使用ReSharper。很多。
我在测试程序集中有一个名为Resources的子文件夹,其中包含我的测试和Settings.StyleCop文件的无效源文件。它们被正确地复制到测试输出文件夹中(我在使用File.Exists
之前添加了一个额外的支票,然后致电AddSourceFile(...)以确保这一点)。
我添加了对StyleCop.dll,StyleCop.CSharp.dll和StyleCop.CSharp.Rules.dll的引用,但没有解决问题。
使用ReSharper亚军StyleCopCore.Parsers集合始终为空。当我使用VS转轮时,它包含一个CsParser。
任何想法我失踪?
如何获取文件的路径?这是一个相对路径吗?尝试运行'Directory.GetCurrentDirectory()'并写出结果以查看基本文件夹的外观。另外,你为文件扩展名注册了一个Parser对象,对吧? (更多提示可以在这里找到:https://stylecop.codeplex.com/SourceControl/latest#Project/Src/StyleCop/FileBasedEnvironment.cs) – jessehouwing
@jessehouwing感谢您的提示。我手动添加一个CsParser,现在AddSourceFile工作。但它忽略了我的自定义规则。 –
这是第一步:)。我不知道为什么你的规则现在不会被触发......但我想我回答了你的问题:) – jessehouwing