<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 22:17:26
        文檔

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

        使用Angular CLI進行單元測試和E2E測試的方法:第一篇文章是: 使用angular cli生成angular5項目 ://www.gxlcms.com/article/136621.htm 第二篇文章是: 使用angular cli從藍本生成代碼 ://www.gxlcms.com/article/137031.htm 第三篇文章是: 使用Angular CLI生成路
        推薦度:
        導讀使用Angular CLI進行單元測試和E2E測試的方法:第一篇文章是: 使用angular cli生成angular5項目 ://www.gxlcms.com/article/136621.htm 第二篇文章是: 使用angular cli從藍本生成代碼 ://www.gxlcms.com/article/137031.htm 第三篇文章是: 使用Angular CLI生成路

        第一篇文章是: "使用angular cli生成angular5項目" ://www.gxlcms.com/article/136621.htm

        第二篇文章是: "使用angular cli從藍本生成代碼" ://www.gxlcms.com/article/137031.htm

        第三篇文章是: "使用Angular CLI生成路由" ://www.gxlcms.com/article/137033.htm

        第四篇文章時: “使用Angular CLI進行Build (構建) 和 Serve”://www.gxlcms.com/article/137034.htm

        本文是該系列的最后一篇文章.

        單元測試.

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

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

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

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

        它應該在單獨的終端進程中執行.

        首先創建一個angular項目, 帶路由的:

        ng new sales --routing

        創建好項目后, 直接執行命令測試:

        ng test

        然后會彈出一個頁面, 就是測試的結果數據.

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

        ng g c person
        ng g c order
        ng g m admin --routing
        ng g c admin/user
        ng g c admin/email

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

        這時我重新執行一下ng test:

        盡管程序運行沒有問題, 但是測試還是出現了問題: 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 代碼覆蓋率報告, 默認這個是不開啟的, 因為生成報告的速度還是比較慢的.
        2. --colors 輸出結果使用各種顏色 默認開啟
        3. --single-run -sr 執行測試, 但是不檢測文件變化 默認不開啟
        4. --progress 把測試的過程輸出到控制臺 默認開啟
        5. --sourcemaps -sm 生成sourcemaps 默認開啟
        6. --watch -w 運行測試一次, 并且檢測變化 默認開啟 

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

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

        測試代碼覆蓋率:

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

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

        ng test -sr -cc

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

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

        直接打開index.html:

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

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

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

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

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

        再次執行ng test --sr -cc

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

        只有catch部分沒有覆蓋到.

        我認為代碼覆蓋率這個內置功能是非常好的.

        Debug單元測試.

        首先執行ng test:

        然后點擊debug, 并打開開發者工具:

        然后按cmd+p:

        找到需要調試的文件:

        設置斷點:

        然后在spec里面也設置一個斷點:

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

        E2E測試的參數.

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

        它的命令是 ng e2e.

        常用的參數有:

        1. --config -c 指定配置文件 默認是 protractor.conf.js
        2. --element-explorer -ee 打開protractor的元素瀏覽器
        3. --serve -s 在隨機的端口編譯和serve 默認true
        4. --specs -sp 默認是執行所有的spec文件, 如果想執行某個spec就使用這個參數, 默認是all
        5. --webdriver-update -wu 嘗試更新webdriver 默認true

        通常執行下面機組命令參數組合即可:

        ng e2e
        ng e2e -ee

        Debug E2E測試.

        看一下項目:

        配置文件protractor.conf.js已經配置好.

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

        看一下spec和po文件:

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

        應該是沒問題的.

        所以執行ng e2e:

        測試通過, 但是瀏覽器閃了一下就關閉了.

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

        ng e2e -ee

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

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

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

        由于angular cli 更新比較快, 所以查看最新的功能最好還是看官方文檔:https://github.com/angular/angular-cli/wiki

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

        文檔

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

        使用Angular CLI進行單元測試和E2E測試的方法:第一篇文章是: 使用angular cli生成angular5項目 ://www.gxlcms.com/article/136621.htm 第二篇文章是: 使用angular cli從藍本生成代碼 ://www.gxlcms.com/article/137031.htm 第三篇文章是: 使用Angular CLI生成路
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久精品国产亚洲香蕉| 亚洲国产精品日韩| 亚洲免费观看在线视频| 亚洲av永久无码精品古装片| 久久九九免费高清视频| 黑人大战亚洲人精品一区| 亚洲日韩中文字幕天堂不卡| 免费精品国自产拍在线播放| 在线美女免费观看网站h| 亚洲成a人片在线观看中文app| 羞羞视频免费观看| 午夜免费1000部| 亚洲日韩AV无码一区二区三区人| 在线观看免费播放av片| 久久亚洲AV成人无码电影| 91精品国产免费网站| 亚洲综合伊人制服丝袜美腿| 国产精品免费视频网站| 又硬又粗又长又爽免费看| 国产V亚洲V天堂无码久久久| 91av视频免费在线观看| 亚洲一区二区三区写真| 亚洲精品免费观看| 亚洲天堂一区在线| 免费大黄网站在线观| 两个人看的www免费高清| 亚洲精品午夜在线观看| 国产jizzjizz免费看jizz| 最近免费字幕中文大全| 亚洲国产美女精品久久| 国产免费拔擦拔擦8x| 国产永久免费高清在线| 亚洲精品蜜桃久久久久久| 69视频在线观看高清免费| 亚洲精品久久无码av片俺去也| 国产精品1024永久免费视频| 亚洲国产精品无码久久久秋霞1 | 九月婷婷亚洲综合在线| 久久久久成人片免费观看蜜芽| 亚洲欧洲日产国码无码久久99| 一级毛片试看60分钟免费播放|