之前在介紹工具及資源時,有提到dotnet/corefx是我們的地圖,因為裡面有LINQ的原始碼,在正式挑戰地下城之前讓我們來看看這個地圖到底要怎麼使用吧。
依照Developer Guide的步驟建置Repository,本篇以Windows為例。
corefx的建置會依賴某些軟體,這些軟體需要先安裝才能建置專案。
開發團隊很貼心地幫我們準備了建置相關的script,我們只要執行相對應的script就可以完成建置,主要有以下幾個scripts:
我們先執行build:
build
執行完之後在Visual Studio上打開corefx/src/System.Linq.sln:
這樣我們的建置就完成了。
corefx有很多測試案例,在學習的時候很有幫助,接著我們要來跑跑看測試案例。
corefx的測試框架是xunit,案例可以用Skip
這個屬性來忽略不想要每次測試都執行的案例:
[Fact(Skip = "Valid test but too intensive to enable even in OuterLoop")]
public void IndexOverflows()
{
...
}
前面的執行方式會執行這個方案下所有的測試案例,可是我們通常只會對一個Class做修改,測試案例也只需要執行這個Class的就好,透過接下來的操作可以達到此目的。
-class System.Linq.Tests.SelectTests
(這邊以SelectTests
為例),格式為namspace.class
跟Class的方式相同,修改Command line arguments的字串,在後面加上-method System.Linq.Tests.SelectTests.SameResultsRepeatCallsStringQuery
,格式為namespace.class.method
有了開發團隊所寫的測試案例可以更了解每一個語法的作用和特點,也可以在嘗試修改的過程中利用這些測試案例讓我們的修改更加的有信心,有了這張地圖的幫忙會讓我們少走了很多的歪路。