0
我試圖寫一個約定的測試,它指定的方法應該只在某些情況下被稱爲 - 特別是我有一個靜態Empty
消氣,我只希望,允許使用測試方法,用TestAttribute
裝飾的vis方法。查找其中一個方法被稱爲一項公約測試
我知道,我也應該紀念吸氣劑過時,使用另一種方法等,但我也想解決這個公約測試,因此不會在未來的突破。
我猜我想通過反射在我的慣例測試使用靜態分析。我將如何去執行這種分析?
我試圖寫一個約定的測試,它指定的方法應該只在某些情況下被稱爲 - 特別是我有一個靜態Empty
消氣,我只希望,允許使用測試方法,用TestAttribute
裝飾的vis方法。查找其中一個方法被稱爲一項公約測試
我知道,我也應該紀念吸氣劑過時,使用另一種方法等,但我也想解決這個公約測試,因此不會在未來的突破。
我猜我想通過反射在我的慣例測試使用靜態分析。我將如何去執行這種分析?
是,羅斯林可以用這樣的事情有所幫助。
var solution = Solution.Load(pathToSolution);
foreach (var project in solution.Projects)
{
var type = project.GetCompilation().GetTypeByMetadataName(typeNameContainingMethod);
var method = type.GetMembers("Empty").Single();
var references = method.FindAllReferences(solution);
foreach (var referencedSymbol in references)
{
foreach (var referenceLocation in references)
{
CheckIfCallIsAllowed(referenceLocation);
}
}
}
你也可以看看創建一個代碼問題巡視,並隨附羅斯林CTP的另一種方法的代碼問題模板:什麼這可能看起來像作爲一個獨立的分析,會是這樣的一個例子在編輯時這樣做,而不是在測試中。
反射不會提供您的方法的實現細節(正文)。你應該使用類似於Roslyn的東西。我建議爲你的問題添加標籤'roslyn',這樣你就可以從它的團隊獲得幫助,就像Eric Lippert所做的那樣http://stackoverflow.com/questions/15891197/finding-everywhere-an-enum-is-converted字符串 – 2013-05-06 05:04:59
@Ilya完成了,歡呼聲 – 2013-05-06 05:12:04