進行Angular單元測試時,在Class Library(類別庫)新增TypeScript測試檔,使用Chutzpah測試正常,但我發現Class Library專案裡的TypeScript,不像在ASP.NET Web專案裡會自動產生.js檔,Chutzpah似乎是靠自己的機制編譯TypeScript(所以才會有名為_Chutzpah.53.sampleapp.js的暫存檔)。
計劃在Class Library加入自訂Test Runner網頁,需要將TypeScript轉為JavaScript才能運作。爬文找到參考文章,發現此與Class Library的csproj缺少設定有關。由於不同版本Visual Studio的參數有所出入(我實測的參數便與文章寫的不同),較保險的做法是拿可運作的ASP.NET專案與Class Library專案csproj比對,複製缺少的設定過去。
實際測試,Class Library的.csproj需增加兩個<Import>設定,剛好在開頭與結尾。
csproj開頭(紅框為要補上的設定)
csproj結尾
在csproj加入兩條<Import>設定並重新載入專案,之後每次儲存TypeScript,Visual Studio就會自動產生.js及.js.map囉~