天天看點

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

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單元測試如何隻執行指定的測試用例,提高測試速度

繼續閱讀