最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

使用AngularCLI進行單元測試和E2E測試的方法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:44:38
文檔

使用AngularCLI進行單元測試和E2E測試的方法

使用AngularCLI進行單元測試和E2E測試的方法:這篇文章主要介紹了使用Angular CLI進行單元測試和E2E測試的方法,現(xiàn)在分享給大家,也給大家做個參考。單元測試.angular cli使用karma進行單元測試.首先執(zhí)行ng test --help或者ng test -h查看幫助.執(zhí)行測試的話就執(zhí)行ng test即可, 它會執(zhí)行項目里所
推薦度:
導(dǎo)讀使用AngularCLI進行單元測試和E2E測試的方法:這篇文章主要介紹了使用Angular CLI進行單元測試和E2E測試的方法,現(xiàn)在分享給大家,也給大家做個參考。單元測試.angular cli使用karma進行單元測試.首先執(zhí)行ng test --help或者ng test -h查看幫助.執(zhí)行測試的話就執(zhí)行ng test即可, 它會執(zhí)行項目里所
這篇文章主要介紹了使用Angular CLI進行單元測試和E2E測試的方法,現(xiàn)在分享給大家,也給大家做個參考。

單元測試.

angular cli使用karma進行單元測試.

首先執(zhí)行ng test --help或者ng test -h查看幫助.

執(zhí)行測試的話就執(zhí)行ng test即可, 它會執(zhí)行項目里所有的.spec.ts文件.

而且它還會檢測文件的變化, 如果文件有變化, 那么它會重新執(zhí)行測試.

它應(yīng)該在單獨的終端進程中執(zhí)行.

首先創(chuàng)建一個angular項目, 帶路由的:

創(chuàng)建好項目后, 直接執(zhí)行命令測試:

然后會彈出一個頁面, 就是測試的結(jié)果數(shù)據(jù).

下面我再添加幾個components 和 一個 admin module:

然后配置一下路由, 最重要得到這個效果:

這時我重新執(zhí)行一下ng test:

盡管程序運行沒有問題, 但是測試還是出現(xiàn)了問題: router-outlet is not an angular component.

可以看一下spec list:

這時因為運行測試的時候, admin模塊是獨立運行的, 所以該模塊并沒有引用Router模塊, 所以無法識別router-outlet.

那么如何解決這個問題?

打開admin.component.spec.ts:

把這句話填上, 然后就沒有錯誤了:

NO_ERRORS_SCHEMA告訴angular忽略那些不識別的元素或者元素屬性.

  1. --code-coverage -cc 代碼覆蓋率報告, 默認(rèn)這個是不開啟的, 因為生成報告的速度還是比較慢的.

  2. --colors 輸出結(jié)果使用各種顏色 默認(rèn)開啟

  3. --single-run -sr 執(zhí)行測試, 但是不檢測文件變化 默認(rèn)不開啟

  4. --progress 把測試的過程輸出到控制臺 默認(rèn)開啟

  5. --sourcemaps -sm 生成sourcemaps 默認(rèn)開啟

  6. --watch -w 運行測試一次, 并且檢測變化 默認(rèn)開啟

ng test 就是運行測試, 并且如果文件有變化, 就會重新運行測試.

使用ng test -sr或者ng test -w false 執(zhí)行單次測試

測試代碼覆蓋率:

ng test --cc 的報告默認(rèn)是生成在/coverage文件夾下, 但是可以通過修改.angular-cli.json里面的屬性進行修改.

下面生成代碼覆蓋率報告:

通常是配合-sr參數(shù)使用的(運行一次測試).

然后會在項目的coverage文件夾里生成一些文件:

直接打開index.html:

可以看到都是100%, 這是因為我沒有寫任何代碼.

然后我在user component里面添加一些代碼:

再運行一次 ng test --sr -cc:

可以看到這部分代碼并沒有覆蓋到.

如果我把代碼里到 canGetUsers改為true:

再次執(zhí)行ng test --sr -cc

可以看到這次代碼覆蓋率變化了:

只有catch部分沒有覆蓋到.

我認(rèn)為代碼覆蓋率這個內(nèi)置功能是非常好的.

Debug單元測試.

首先執(zhí)行ng test:

然后點擊debug, 并打開開發(fā)者工具:

然后按cmd+p:

找到需要調(diào)試的文件:

設(shè)置斷點:

然后在spec里面也設(shè)置一個斷點:

最后點擊瀏覽器的刷新按鈕即可:

E2E測試的參數(shù).

實際上angular cli是配合著protractor來進行這個測試的.

它的命令是 ng e2e.

常用的參數(shù)有:

  1. --config -c 指定配置文件 默認(rèn)是 protractor.conf.js

  2. --element-explorer -ee 打開protractor的元素瀏覽器

  3. --serve -s 在隨機的端口編譯和serve 默認(rèn)true

  4. --specs -sp 默認(rèn)是執(zhí)行所有的spec文件, 如果想執(zhí)行某個spec就使用這個參數(shù), 默認(rèn)是all

  5. --webdriver-update -wu 嘗試更新webdriver 默認(rèn)true

通常執(zhí)行下面機組命令參數(shù)組合即可:

Debug E2E測試.

看一下項目:

配置文件protractor.conf.js已經(jīng)配置好.

而測試文件是在e2e目錄下.

看一下spec和po文件:

再看一下app.component.html里面的值:

應(yīng)該是沒問題的.

所以執(zhí)行ng e2e:

測試通過, 但是瀏覽器閃了一下就關(guān)閉了.

如果我想debug e2e, 那么執(zhí)行這個命令:

由于我使用的是mac, 當(dāng)前這個命令在mac上貌似確實有一個bug:

如果可以正常運行這個命令的話, 終端窗口會出現(xiàn)“Debugger listening on xxx: ”字樣, 然后就可以在下面輸入變量或者表達式來查看它們的值從而進行調(diào)試了.

如果想退出調(diào)試, 那就按Ctrl+c或者輸入.exit即可.

上面是我整理給大家的,希望今后會對大家有幫助。

相關(guān)文章:

Vue.js 表單控件操作小結(jié)

js傳遞數(shù)組參數(shù)到后臺controller的方法

Vue.js實現(xiàn)可配置的登錄表單代碼詳解

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

使用AngularCLI進行單元測試和E2E測試的方法

使用AngularCLI進行單元測試和E2E測試的方法:這篇文章主要介紹了使用Angular CLI進行單元測試和E2E測試的方法,現(xiàn)在分享給大家,也給大家做個參考。單元測試.angular cli使用karma進行單元測試.首先執(zhí)行ng test --help或者ng test -h查看幫助.執(zhí)行測試的話就執(zhí)行ng test即可, 它會執(zhí)行項目里所
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top