我在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