Angular單元測試如何只執行指定的測試用例,提高測試速度

i042416發表於2020-11-22

Angular專案的規模一旦變大,待執行的單元測試的數目可能是海量的。此時在開發新的單元測試時,會遇到需要遮蔽到系統裡已經非常穩定的測試,而只執行正在開發的新單元測試。這個需求如何實現呢?

每個Angular專案資料夾下都有test.ts, 裡面有一行語句,指定了該專案下哪些ts檔案裡的單元測試會執行:

const context = require.context('./', true, /\.spec\.ts$/);


Angular單元測試如何只執行指定的測試用例,提高測試速度


預設情況下,src目錄下所有以.spec.ts結尾的檔案裡,包含的單元測試都會被執行。

如果我想只執行正在開發的新單元測試,而遮蔽到以前開發好的所有單元測試,可以在require.context返回的結構上做文章。

只需要新增如下兩行語句:

const FILE = ['./app/ngrxdemo/service/unittest-study/demo.spec.ts'];
context.keys().filter( name => !!FILE.includes(name)).map(context);

將需要執行的單元測試檔案路徑放到FILE陣列裡:


Angular單元測試如何只執行指定的測試用例,提高測試速度


命令列執行ng test, 即可觀察到現在只有FILE陣列裡指定的一個單元測試檔案demo.spec.ts裡的測試用例被執行了:


Angular單元測試如何只執行指定的測試用例,提高測試速度 Angular單元測試如何只執行指定的測試用例,提高測試速度



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2735926/,如需轉載,請註明出處,否則將追究法律責任。

相關文章