Ignore all unit testing function Shell Command

 原因 :

  • 由於目前的 Angular 專案幾乎沒有寫 unit test. 不過 NG CLI 本身會在建立 Component, Service ... 等元件會自動建立一個 *.spec.ts 的測試檔。 以目前有6xx的 spec.ts 跑 ng test 一定會一堆錯,所以用個 shell command 去 parsing 所有 spec.ts 檔案內  it( 這個字串取代成  xit( 來讓 Jasmine 先忽略所有的單元測試。 

Command

先到這個專案資料夾下然後使用下面的指令:

# find . -type f -name '*.spec.ts' | xargs sed -i 's/ it(/xit(/g'

  • 這邊先用 find 把 目前位置下的所有資料夾的檔名為.spec.ts 找出來然後當作參數丟給 sed 來做檔案內文的替換。
  • 這邊在 sed 要注意的是regex 這邊我故意在第一個pattern有多加一個空白在字串it前面,因為我後來發現不加空白會把 ngOninit() 換成 ngOninxit() 這樣會出錯。

這樣所有 it() unit testing 就會被改成 xit() 讓Jasmine 忽略。
紀錄一下這指令避免忘記。

留言