
前言
在這整個架構的設計中,使用NuGet Package來載入套件是我覺得最好的設計,這也代表我不需要額外再設計一個套件的管理服務,一方面免除了在開發階段整合的問題,一方面大大增加了延展性。
Private NuGet Server
在目前的計畫中,整體的開發與佈署最好有兩組NuGet的服務,一個用來作為開發使用,一個作為佈署使用。
開發用的NuGet Server上面的套件可隨時透過CI持續地進行更新(可能同版號或累計版號),整合測試時可以透過載入不同的套件定義(JSON)檔案進行自動化作業。佈署用的Server則登錄已經測試完成可以釋出的套件。
Docker
受益於ASP.NET CORE是個跨平台的框架,我採取了在Linux上使用Docker的技術來快速進行整合測試的作業,我預先配置好了一個Test Server的Image,當需要新的測試環境時,透過Docker API來建立新的Container,更新需要載入的套件資訊,非常快的就可以建立出測試環境。
整合測試採用Selenium,也就是WebDriver來進行測試,由於VisualStudio的Code Coverage並無法在Linux下運作,因此採用Coverlet來進行收集作業。
[延伸閱讀]
