亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Flutter覆蓋率治理:remove_from_coverage鴻蒙化適配實(shí)戰(zhàn)

Flutter覆蓋率治理:remove_from_coverage鴻蒙化適配實(shí)戰(zhàn) 做 Flutter 工程質(zhì)量治理這些年我越來越確信一件事覆蓋率報(bào)告里最坑人的不是數(shù)字低而是數(shù)字“看起來還行”。辛辛苦苦把flutter test --coverage的輸出整理成報(bào)表結(jié)果一打開coverage/lcov.info滿屏都是*.g.dart、*.freezed.dart、自動生成的路由表甚至還有平臺構(gòu)建產(chǎn)物。這些文件不是人寫的也不會有人去評審但它們實(shí)打?qū)嵦稍诜帜咐锇?80% 多的真實(shí)業(yè)務(wù)覆蓋率拖到 70% 出頭。remove_from_coverage這個(gè) Dart 三方庫就是專門處理這個(gè)問題的按 glob 規(guī)則從 lcov.info 里剝離指定文件的記錄段只留下真正需要審計(jì)的業(yè)務(wù)代碼覆蓋數(shù)據(jù)。最近我們在把一套 Flutter 基礎(chǔ)設(shè)施往鴻蒙側(cè)遷移順手就把remove_from_coverage做了一次鴻蒙化適配。原版工具在標(biāo)準(zhǔn) Flutter 工程里很好使但放到鴻蒙工程里路勁格式、自動生成目錄、工具鏈版本全變了。適配過程中踩了不少坑也把覆蓋率工具鏈從“單數(shù)字展示”升級成了質(zhì)量審計(jì)治理的一環(huán)。這篇記錄就是這次適配的完整過程包括原理拆解、補(bǔ)丁思路、CI 門禁集成和排查實(shí)錄適合正在做鴻蒙 Flutter 工程收尾、打算給流水線加覆蓋率門檻的團(tuán)隊(duì)參考。1. 項(xiàng)目背景覆蓋率報(bào)告里的“數(shù)字泡沫”到底怎么來的1.1 一張 lcov 報(bào)告兩套數(shù)字先還原一下最典型的場景。Flutter 工程里執(zhí)行flutter test --coverage會在coverage/下生成lcov.info這是標(biāo)準(zhǔn)的 lcov 格式一行一個(gè)記錄段描述每個(gè)源文件被覆蓋到的行數(shù)。本地開發(fā)時(shí) IDE 插件直接解析它CI 里則把它喂給靜態(tài)分析平臺或者自研的報(bào)表服務(wù)。問題在于lcov.info 里不只有l(wèi)ib/下的業(yè)務(wù)代碼。只要項(xiàng)目引入了 json_serializable、freezed、build_runner 這類代碼生成鏈路lib/**/*.g.dart和lib/**/*.freezed.dart就會大量出現(xiàn)。這些代碼在編譯期生成邏輯重復(fù)、特征明顯測試用例不會刻意去測它們但它們的 DA 記錄實(shí)實(shí)在在地進(jìn)入覆蓋率統(tǒng)計(jì)。舉一個(gè)我處理過的真實(shí)口徑。假設(shè)工程總可執(zhí)行行數(shù)是 20000 行其中業(yè)務(wù)手寫代碼 16000 行自動生成和依賴注入代碼 4000 行。某次測試跑完總共覆蓋了 14000 行但這 14000 行里包含了 1000 行生成代碼的覆蓋記錄。統(tǒng)計(jì)口徑分母覆蓋行數(shù)覆蓋率原始總覆蓋率200001400070%排除生成代碼后的業(yè)務(wù)覆蓋率160001300081.25%同一批測試兩個(gè)數(shù)字差了 11.25 個(gè)百分點(diǎn)。哪個(gè)更能代表工程質(zhì)量顯然是后者。前者就是“數(shù)字泡沫”它讓你以為業(yè)務(wù)代碼測試得不夠?qū)嶋H上可能是分母被無關(guān)文件撐大了。1.2 為什么審計(jì)團(tuán)隊(duì)需要一個(gè)“干凈”的覆蓋率如果覆蓋率只有一個(gè)總數(shù)字質(zhì)量審計(jì)就會很尷尬。管理層看的是趨勢團(tuán)隊(duì)看的是門檻但如果 CI 里只展示 70% 這個(gè)總覆蓋率團(tuán)隊(duì)的注意力就會從“業(yè)務(wù)邏輯有沒有測”轉(zhuǎn)移到“怎么把分母縮小”。有人會去給自動生成代碼寫冗余測試有人會把排除規(guī)則寫得過于寬松甚至有人直接把不達(dá)標(biāo)的分支摘出統(tǒng)計(jì)范圍。這些動作的本質(zhì)都是在修飾數(shù)字不是提升質(zhì)量。審計(jì)需要的是“可解釋的覆蓋率”。所謂可解釋是指任何人拿到這份報(bào)告都能說清楚覆蓋率的分母由哪些文件構(gòu)成、為什么這些文件被排除、排除后還剩多少核心業(yè)務(wù)代碼??偢采w率適合做宏觀趨勢觀察核心業(yè)務(wù)覆蓋率才適合做發(fā)布門禁和 MR 評審依據(jù)。我們做鴻蒙化適配本質(zhì)上就是在把remove_from_coverage從“一個(gè)過濾工具”變成“一套可配置、可追溯、可納入治理流程的質(zhì)量底座”。2. remove_from_coverage 原理拆解它不是正則腳本是 lcov 過濾引擎2.1 核心行為按 SF 段裁剪 lcov 記錄要適配一個(gè)工具先得吃透它怎么工作。remove_from_coverage做的事情并不復(fù)雜它逐段讀取 lcov.info每一段以SF:開頭標(biāo)記一個(gè)源文件路徑后面跟著DA:行覆蓋數(shù)據(jù)、LF:可執(zhí)行行總數(shù)、LH:覆蓋行總數(shù)最后以end_of_record結(jié)束。工具拿到用戶提供的 glob 規(guī)則后對每個(gè)文件段的SF:路徑做匹配。如果匹配上整段直接丟棄不寫入輸出文件沒匹配上則原樣保留。處理完之后輸出一份新的 lcov 文件。這里有個(gè)容易被忽略的關(guān)鍵點(diǎn)lcov 的不同文件段之間是相互獨(dú)立的。刪除一個(gè)文件段不會影響其他段里的DA:記錄也不需要重排行號因?yàn)槊總€(gè)DA:記錄都自帶行號。所以remove_from_coverage不需要像源碼級覆蓋率工具那樣維護(hù)行號映射它只要做好“段級別過濾”就夠了。理解這一點(diǎn)后面調(diào)試誤刪問題時(shí)能少走很多彎路。2.2 glob 匹配規(guī)則怎么用才不踩邊界工具的核心參數(shù)是-r可以傳多次。常見用法是dart run remove_from_coverage \ -f coverage/lcov.info \ -r lib/**.g.dart \ -r lib/**.freezed.dart \ -o coverage/lcov.clean.infolib/**.g.dart和lib/**/*.g.dart在大多數(shù) glob 實(shí)現(xiàn)里語義相近都表示lib/下任意層級遞歸匹配。但規(guī)則寫起來有幾個(gè)容易踩的邊界第一路徑分隔符。lcov 里的SF:路徑通常用正斜杠/但 Windows 本地開發(fā)時(shí)某些工具鏈會輸出反斜杠\。glob 匹配默認(rèn)按/處理一旦混入反斜杠規(guī)則就失效。第二相對路徑前綴。有的工程SF:是lib/foo.dart有的卻是./lib/foo.dart。多一個(gè)./lib/**就匹配不上。適配時(shí)最好統(tǒng)一做歸一化而不是靠規(guī)則去猜。第三規(guī)則范圍。**/*.g.dart會把test/下 mock 產(chǎn)生的 g.dart 也過濾掉如果這些 mock 文件本身是你想統(tǒng)計(jì)的對象就會誤傷。建議規(guī)則盡量指向明確的頂層目錄比如lib/**.g.dart而不是到處匹配。2.3 自己寫腳本過濾與直接 fork 的三點(diǎn)權(quán)衡有人會問lcov 過濾這么簡單為什么不自己寫個(gè) Python 腳本我一開始也是這么想的但評估下來有三點(diǎn)權(quán)衡第一lcov 格式的邊界情況比想象中多。文件路徑里可能出現(xiàn)空格、括號DA:行可能有逗號帶執(zhí)行次數(shù)記錄段之間偶爾會有空行腳本解析時(shí)這些都要處理干凈否則線上報(bào)告會莫名少數(shù)據(jù)。第二glob 規(guī)則看起來簡單真要做到跨平臺、遞歸匹配、排除和保留語義清晰直接用成熟庫比自己實(shí)現(xiàn)可靠得多。remove_from_coverage已經(jīng)把這些邏輯封裝好了拿過來改比從零寫省力。第三后續(xù)維護(hù)問題。覆蓋率工具不是寫完就完團(tuán)隊(duì)會不斷往排除規(guī)則里加目錄CI 里還要支持配置化。用開源工具做底座fork 一份維護(hù)比每個(gè)人手里一份隨手腳本更可控。所以在“自己寫 10 行腳本”和“直接 fork 適配”之間我選了后者。3. 鴻蒙化適配要跨過的三個(gè)坑路徑、產(chǎn)物目錄和工具鏈3.1 路徑風(fēng)格與相對根目錄先觀察 SF 記錄長什么樣鴻蒙 Flutter 工程的目錄結(jié)構(gòu)和標(biāo)準(zhǔn) Flutter 工程有一個(gè)明顯差異工程根目錄下除了lib/、test/還有entry/、oh_modules/、.hvigor/、build/這些鴻蒙側(cè)目錄。flutter test --coverage生成的 lcov.info 中SF:路徑仍然以工程根為相對根但文件來源會混入不同模塊。適配第一步不是寫代碼而是先拿到一份鴻蒙工程的 lcov.info把前幾十條SF:記錄打出來看grep ^SF: coverage/lcov.info | head -50我拿到手的結(jié)果大概是這個(gè)畫風(fēng)SF:lib/core/network/http_client.dart SF:lib/generated/route/route_table.g.dart SF:oh_modules/.tpc_pkg/foo/lib/src/foo_api.dart SF:.hvigor/cache/generated_dart/entry/bridge_generated.dart SF:entry/src/main/ets/model/xx.ets # 理論上不應(yīng)出現(xiàn)在 dart 覆蓋率里看到oh_modules和.hvigor的時(shí)候基本就能確定直接用原版remove_from_coverage是搞不定的。它沒有內(nèi)置這些鴻蒙路徑的識別能力而且如果SF:里混入了絕對路徑或者./前綴規(guī)則匹配也會靜默失敗。3.2 自動產(chǎn)物目錄識別不是只有 .g.dart 需要過濾標(biāo)準(zhǔn) Flutter 項(xiàng)目的臟數(shù)據(jù)主要是*.g.dart、*.freezed.dart、.dart_tool下的工具生成代碼。鴻蒙工程多出來的幾類“新面孔”更陰間一類是oh_modules/。鴻蒙側(cè)的三方依賴通常會解壓到工程根的oh_modules/目錄個(gè)別的 Dart 源碼也會被拷貝到這里。它們是依賴包不是業(yè)務(wù)代碼測試用例跑到的覆蓋記錄計(jì)入分母會嚴(yán)重拉低真實(shí)覆蓋率。另一類是.hvigor/。鴻蒙構(gòu)建系統(tǒng)的緩存和臨時(shí)文件目錄里偶爾會出現(xiàn)腳手架自動生成 Dart bridge 文件。這些文件每次構(gòu)建都可能變化如果把它們計(jì)入覆蓋率報(bào)告的可復(fù)現(xiàn)性就很差。還有build/、entry/build/這類產(chǎn)物目錄。理論上 lcov 不應(yīng)該收錄它們但在多模塊工程里偶爾會有漏網(wǎng)之魚。我建議默認(rèn)內(nèi)置一組鴻蒙排除目錄這些規(guī)則應(yīng)該經(jīng)過團(tuán)隊(duì)評審而不是一個(gè)人說了算。oh_modules/** **/oh_modules/** .hvigor/** **/.hvigor/** **/build/** **/.dart_tool/**3.3 工具鏈版本在鴻蒙 Flutter SDK 下跑 dart 入口remove_from_coverage是 Dart package運(yùn)行方式是dart run remove_from_coverage。鴻蒙 Flutter 工程用的往往是帶鴻蒙適配分支的 Flutter SDKDart 版本可能和標(biāo)準(zhǔn) Flutter SDK 不完全一致。如果 fork 下來直接pub get可能遇到 SDK 約束沖突。解決方式有兩種。第一種是改 fork 版本里pubspec.yaml的environment.sdk約束放寬到當(dāng)前 SDK 能接受的范圍。第二種是把執(zhí)行入口切到鴻蒙 SDK 自帶的 dart 可執(zhí)行文件例如$FLUTTER_HOME/bin/dart run ...確保運(yùn)行環(huán)境和構(gòu)建環(huán)境一致。這里有個(gè)小建議適配版不要改原版的命令行參數(shù)結(jié)構(gòu)否則 CI 腳本遷移成本會變大。兼容原參數(shù)再增加新參數(shù)是最穩(wěn)妥的做法。4. 適配實(shí)操從 fork 到 CI 門禁一次講透4.1 源碼獲取與本地環(huán)境準(zhǔn)備適配的第一步是把源碼拉到本地。我們在代碼托管平臺上 fork 了一份remove_from_coverageclone 到工作目錄然后切到一個(gè)獨(dú)立的適配分支。環(huán)境準(zhǔn)備方面需要三樣?xùn)|西鴻蒙 Flutter SDK、對應(yīng)的 Dart SDK、一份能跑通flutter test --coverage的模擬鴻蒙工程。沒有真實(shí)工程也沒關(guān)系可以先造一個(gè)最小樣例但一定要包含oh_modules、.hvigor這類目錄名否則自測覆蓋不到關(guān)鍵適配點(diǎn)。mkdir remove_from_coverage_harmony cd remove_from_coverage_harmony git clone 本地 fork 地址 cd remove_from_coverage flutter pub getpub get成功不代表運(yùn)行沒問題一定要在鴻蒙工程的根目錄下用真實(shí)的 lcov.info 執(zhí)行一次原版工具確認(rèn)原版在哪個(gè)環(huán)節(jié)失效。4.2 路徑規(guī)范化補(bǔ)丁把所有路徑統(tǒng)一成正斜杠 去掉 ./ 前綴原版工具里SF:路徑進(jìn)了匹配邏輯后是直接和 glob 規(guī)則比對的。鴻蒙工程里最容易翻車的就是路徑風(fēng)格。我加了一個(gè)歸一化函數(shù)在讀取每一行的路徑后立刻處理String normalizeLcovPath(String rawPath) { var path rawPath.replaceAll(\\, /); while (path.startsWith(./)) { path path.substring(2); } return path; }這段邏輯不復(fù)雜但解決了兩類問題。第一Windows 本地產(chǎn)生的lib\core\http.dart會被轉(zhuǎn)成lib/core/http.dart規(guī)則統(tǒng)一用正斜杠書寫。第二./lib/foo.dart變成lib/foo.dart不需要用戶為前綴差異寫兩套規(guī)則。此外如果SF:出現(xiàn)了絕對路徑我會判斷它是否以當(dāng)前工程根開頭如果是就裁剪成相對路徑如果不是則原樣保留。這一步能避免用戶規(guī)則里寫絕對路徑前綴的尷尬。4.3 內(nèi)置鴻蒙默認(rèn)排除規(guī)則新增 --harmony 開關(guān)鴻蒙化適配不能只靠用戶每次手動寫一堆oh_modules/**容易漏。我加了一個(gè)--harmony開關(guān)開啟后自動追加默認(rèn)排除規(guī)則const harmonyDefaultGlobs [ oh_modules/**, **/oh_modules/**, .hvigor/**, **/.hvigor/**, **/build/**, **/.dart_tool/**, ];這些規(guī)則和用戶的-r規(guī)則是并集關(guān)系不是互斥關(guān)系。也就是說只要任一規(guī)則命中該文件段就會被移除。命令行使用方式變成dart run bin/remove_from_coverage.dart \ -f coverage/lcov.info \ --harmony \ -r lib/**.g.dart \ -r lib/**.freezed.dart \ -o coverage/lcov.clean.info注意原版參數(shù)一個(gè)都沒動--harmony只是追加能力。這樣做的好處是團(tuán)隊(duì)切換到鴻蒙環(huán)境時(shí)CI 腳本只需要增加一個(gè)參數(shù)不需要重寫規(guī)則集。4.4 單元自測與真實(shí)工程驗(yàn)證適配代碼改完不能直接上 CI得先自測。我寫了兩類驗(yàn)證第一類是用臨時(shí)構(gòu)造的 lcov 樣本跑單元測試。樣本里故意放這些文件段SF:lib/core/util.dart應(yīng)該保留SF:lib/generated/api.g.dart應(yīng)該移除SF:oh_modules/foo/lib/foo.dart開啟--harmony后應(yīng)該移除SF:.hvigor/cache/generated_dart/a.dart應(yīng)該移除SF:entry/src/main/ets/demo.ets因?yàn)椴皇?Dart 文件理論上不會出現(xiàn)但我也驗(yàn)證了規(guī)則不會誤傷第二類是在模擬鴻蒙工程里跑真實(shí)流程。先執(zhí)行flutter test --coverage拿到原始coverage/lcov.info。然后跑適配版對比清理前后的記錄段數(shù)量和數(shù)據(jù)。我們當(dāng)時(shí)的結(jié)果是原始 lcov.info 有 132 條SF:記錄適配版清理后剩 86 條剝離了 46 個(gè)生成代碼或依賴文件段。覆蓋率表現(xiàn)從 70% 提升到 81.25%。這個(gè)提升幅度是合理的因?yàn)檫@些被剝離的文件段本身貢獻(xiàn)了覆蓋行但它們不應(yīng)該被算進(jìn)業(yè)務(wù)質(zhì)量指標(biāo)。4.5 集成 CI兩個(gè)覆蓋率指標(biāo)加一道質(zhì)量門禁本地驗(yàn)證通過之后我把適配版接到了 CI 流水線。整個(gè)流程分四步flutter test --coverage dart run remove_from_coverage \ -f coverage/lcov.info \ --harmony \ -r lib/**.g.dart \ -r lib/**.freezed.dart \ -o coverage/lcov.clean.info # 分別解析 lcov.info 和 lcov.clean.info得到兩個(gè)覆蓋率指標(biāo) # total_coverage原始總覆蓋率用于宏觀趨勢 # core_coverage清理后的業(yè)務(wù)覆蓋率用于發(fā)布門禁門禁規(guī)則我建議這樣設(shè)core_coverage低于閾值時(shí)構(gòu)建失敗total_coverage不設(shè)硬門檻但出現(xiàn)單次下降超過 2 個(gè)百分點(diǎn)時(shí)自動給團(tuán)隊(duì)發(fā)告警。閾值不能拍腦袋定先跑兩周看團(tuán)隊(duì)歷史的 70 分位和 90 分位再確定一個(gè)“跳一跳夠得著”的值。lcov.clean.info 還要繼續(xù)往上報(bào)。靜態(tài)分析平臺直接解析它展示的就是團(tuán)隊(duì)真正關(guān)心的業(yè)務(wù)覆蓋率。原始 lcov.info 保留在構(gòu)建產(chǎn)物里審計(jì)時(shí)如果需要排查“為什么數(shù)字變了”還能回看原始數(shù)據(jù)。5. 常見問題與排查技巧實(shí)錄5.1 排除后覆蓋率紋絲不動八成是路徑?jīng)]對上適配版剛上線時(shí)有同事反饋“我加了oh_modules/**怎么覆蓋率一點(diǎn)沒變”我讓他先把輸出文件打開看一眼發(fā)現(xiàn)SF:條數(shù)跟輸入完全一樣說明規(guī)則一條都沒命中。排查方法很簡單先確認(rèn) lcov.info 里的實(shí)際路徑格式grep ^SF: coverage/lcov.info | head -20常見的坑有三個(gè)。第一路徑帶了./前綴規(guī)則卻寫的是oh_modules/**第二Windows 下路徑是反斜杠規(guī)則里還是正斜杠第三路徑是絕對路徑規(guī)則寫的是相對路徑。我的經(jīng)驗(yàn)是不要憑記憶寫規(guī)則一定先看真實(shí)路徑。提示所有規(guī)則修改完先用--output生成一份臨時(shí)文件對比 SF 條數(shù)變化確認(rèn)命中了再跑全量。5.2 誤傷業(yè)務(wù)代碼規(guī)則太寬差點(diǎn)刪掉核心模塊有一次我把**/generated/**加進(jìn)排除規(guī)則結(jié)果覆蓋率不升反降。查了半天發(fā)現(xiàn)項(xiàng)目里有個(gè)lib/repository/generated_api/目錄里面不是自動生成文件而是開發(fā)手寫的 API 客戶端代碼。這條寬規(guī)則把這些真實(shí)業(yè)務(wù)代碼段全濾掉了分母一下子少了覆蓋行也少了最終業(yè)務(wù)覆蓋率反而崩了。這件事給我的教訓(xùn)是排除規(guī)則必須有強(qiáng)特征不要只憑目錄名猜測。.g.dart、.freezed.dart這種后綴特征就很好因?yàn)樗鼈冎豢赡軄碜源a生成器。目錄名排除盡量限定在oh_modules/、.hvigor/、.dart_tool/這類根級目錄不要用**/generated/**這種打中一切的名字。如果工具支持打印匹配文件清單建議先跑一遍確認(rèn)dart run remove_from_coverage --list-files -f coverage/lcov.info --harmony把命中的文件列表拉出來人工掃一眼再正式接入門禁。5.3 Windows 開發(fā)機(jī)與 Linux CI 的路徑分隔符差異適配完第一版后我在本地 Windows 上跑得好好的推到 CI 后 Linux 節(jié)點(diǎn)上規(guī)則全部失效。查了很久才發(fā)現(xiàn)部分依賴工具在 Windows 環(huán)境下會把路徑寫成反斜杠而我的歸一化邏輯只處理了讀取SF:時(shí)的路徑?jīng)]有處理規(guī)則本身。后來我統(tǒng)一了三處策略讀取路徑后轉(zhuǎn)正斜杠、規(guī)則書寫要求一律正斜杠、對比時(shí)大小寫不敏感但保留原始路徑輸出。如果團(tuán)隊(duì)里有 macOS 或 Windows 混合開發(fā)環(huán)境這三個(gè)統(tǒng)一能省掉大量莫名其妙的“本地好了 CI 掛了”問題。5.4 大倉庫性能問題glob 展開和規(guī)則順序適配版上線后跑了兩個(gè)星期發(fā)現(xiàn)處理時(shí)間偶爾會從幾百毫秒漲到幾秒。查了一下是某次評審時(shí)往規(guī)則里加了一條特別寬的**/bridge/**這個(gè)規(guī)則會遞歸展開大量子目錄匹配開銷明顯增加。lcov 記錄段少則幾千多則幾萬。每條規(guī)則都做一次遞歸 glob 展開性能自然往下掉。我建議規(guī)則里能用lib/**.g.dart就用這種帶頂層目錄限制的寫法少用裸**開頭的規(guī)則同時(shí)把精確規(guī)則放在前面寬泛規(guī)則放在后面。如果實(shí)現(xiàn)一次命中即跳過精確規(guī)則先命中就能減少后續(xù)匹配次數(shù)。實(shí)測下來幾千條記錄、十條以內(nèi)的規(guī)則處理時(shí)間基本可以保持在 1 秒以內(nèi)感知不到性能問題。6. 從“報(bào)告精簡”到“質(zhì)量審計(jì)治理”的延伸實(shí)踐6.1 雙層指標(biāo)模型總覆蓋率作為參考業(yè)務(wù)覆蓋率作為門禁適配完成之后我們重新設(shè)計(jì)了覆蓋率指標(biāo)體系。原來的指標(biāo)只有一個(gè)“所有文件覆蓋率”看起來簡單實(shí)則管理成本很高。現(xiàn)在拆成兩層指標(biāo)數(shù)據(jù)來源用途建議閾值原始總覆蓋率lcov.info宏觀趨勢、環(huán)境變化告警70% 以上核心業(yè)務(wù)覆蓋率lcov.clean.info發(fā)布門禁、MR 評審80% 以上總覆蓋率是用來“看趨勢”的它如果突然大幅下降說明有新的大塊代碼未覆蓋值得關(guān)注。核心業(yè)務(wù)覆蓋率是用來“卡發(fā)布”的它直接反映手寫業(yè)務(wù)代碼的測試充分度。兩個(gè)指標(biāo)同時(shí)看才不會顧此失彼。6.2 增量覆蓋率怎么和 remove_from_coverage 配合整體覆蓋率有一個(gè)滯后問題這次改動了 200 行新代碼但分母是 16000 行的業(yè)務(wù)代碼指標(biāo)幾乎無感知。發(fā)布門禁只卡整體覆蓋率新代碼仍然可能裸奔。我建議在 CI 里增加增量覆蓋率統(tǒng)計(jì)。思路是先用git diff --name-only HEAD~1提取本次變更文件再從lcov.clean.info中過濾出這些文件的覆蓋記錄單獨(dú)計(jì)算增量覆蓋率。這個(gè)過程本質(zhì)上還是“按文件段過濾 lcov”和remove_from_coverage的底層邏輯一致完全可以復(fù)用同一套代碼。增量覆蓋率可以作為 MR 機(jī)器人的評論內(nèi)容每次提交自動發(fā)一條“本次新增代碼覆蓋率 xx%低于閾值不可合并”。團(tuán)隊(duì)對增量的感知會比整體指標(biāo)敏銳得多。6.3 把排除規(guī)則當(dāng)成資產(chǎn)而不是一次性參數(shù)覆蓋率治理最怕的是規(guī)則靠口口相傳。今天 A 同學(xué)在 CI 里加一條規(guī)則明天 B 同學(xué)因?yàn)橥瑯拥膯栴}又加一條最后排除規(guī)則變成了一鍋粥誰都不知道哪些文件被拿掉了。我把規(guī)則從命令行參數(shù)里挪了出來維護(hù)成工程根目錄下的coverage_exclude.yamlharmony: enabled: true default_excludes: true excludes: - lib/**.g.dart - lib/**.freezed.dart - **/.dart_tool/** - oh_modules/** - .hvigor/**適配版增加了一個(gè)--config參數(shù)CI 腳本只需要傳配置文件路徑不再需要一長串的-r。規(guī)則變更走代碼評審歷史可追溯新同事也容易理解“分母是什么、為什么排除這些文件”。我個(gè)人的體會是覆蓋率治理做到這個(gè)程度才算真正從“報(bào)告精簡”走到了“質(zhì)量審計(jì)治理”。remove_from_coverage的鴻蒙化適配只是個(gè)起點(diǎn)真正有價(jià)值的是背后那套可解釋、可配置、可持續(xù)改進(jìn)的質(zhì)量閉環(huán)。后面如果再遇到新平臺適配這套指標(biāo)模型和配置管理方式可以直接復(fù)用不需要再從頭趟一遍。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天弄欧美| 99中文字幕| 操人91| 亚州色综合| 天天操美美| 婷婷五月天色| 久久性爱大全| 性爱视频无打码在线观看| 欧成人在线| 另类av天堂| 色999亚洲人成色| 欧美亚洲国产91在线| 日韩电影天堂视频一区二区| 久久成年精品| 91人妻视频在线| 大香蕉黄色一区| se01国产在线视频| 中文AV制服乱伦| 99热线麻豆 | 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 久久精品高清无码一区| 欧亚久久偷拍视频| 色一射色一射| 国产盗摄美女如厕大神作品在线观看| 私色综合网| 2020国产精品| 九九在线视频| 中文字幕 人妻不满 在线视频| 日韩精品碰碰| 午夜.DJ高清在线观看免费7 | 青青草日韩无码| 黄aaaaaaaaaaaaaaaaaa色网站| 一区二区三区免费视频入口 | 女人的久久久| 亚洲无码99| 操逼逼无码| 日韩无码黄色片| 性色av大全| 亚洲综合999| 好吊色综合| 91另类| 97视频免费在线观看| 日本黄色精品| 成人国产二区三区在线,男女精品。| 91激情国产| www. 男人天堂成人在线| 九月AV| 歐美一級亂黃99在綫精品| 玖玖97综合 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲一区二区av| 欧美综合色图片| 亚洲人精品久久久| 国产毛片片精品天天看视频| 国产精品福利视频播放| 国产91啪| 日韩另类色图| 啊操爽品善一区二区三区| 久久综合久色欧美综合狠狠| 日韩精品午夜操呦呦不卡影院| 天天爽天天操啊啊啊| 啊啊啊啊啊啊在线观看| 99re免费视频精品全部| 日本肉体xxxx裸交| 操b网站亚洲无码| 青青草色插素人| 欧美高潮| 国内亚洲高清无码| 丁香五月综合| 久久国产对白激情浪潮 | 夜夜操青青草| 日本福利社| 好湿好紧好爽 视频| 九九九九免费高| 精品妇操一区二区三区| 欧美日韩色综合网| 久久久久久大| 91操熟女视频| 51久久夜色精品国产麻豆| 国产福利av精彩对白| 亚洲综合在线视频| 91欧美www| 百度百度日本操逼| 久草综合京东| 欧美成人精品一区二区男人蜜臀| 日韩精品在线视频,日韩精品……| 成全在线观看免费观看| 97综合在线观看| 中文一区二区| 国产又粗又大硬免费色网视频| 中文字幕一区电影在线观看| 人人色97| 插插综合网天天影视网| 天天做天天爱天天爽| 久操 高清| 青青草公开在线免费不卡视频| 国产一区二区三区白丝| 精品免费一区二区三区在线亚洲人成| henhen91| 91粉嫩萝控精品福利网站_精品影音先锋国 | 日本中文字幕不卡视频| 久久婷五月天| 久热精品在线| 色五月首页| 欧美 亚洲 另类 综合| 免费A片三p视频| 黑丝少妇在线观看| 99少妇| 欧美大香蕉专区网| 久久久久久少妇| 飘花国产午夜精品不卡| 亚洲另类久操网| 国产精品乱码久久| 开心五月天激情网| 四虎在线视频| 中国国国产一级特黄毛片| 无马一区二区| 中文久久爆乳| 超碰色综合| 日韩精品区二区三区不卡| 日韩毛片9| 艹比视频国产精品| 5252色欧美在线男人的天堂| 黄片直播三级黄片两女一男| 中字一区| 激情综合网激情五月天| 97超碰大| 久久色激情一区二区三区| 啪啪啪综合网| 中文子幕一二三| 中文字幕丝袜国产第一页不卡| 青青操在线亚洲视频观看欧美在线 | 白丝被操91| 成人女人国产| 日韩乱中文| 日韩午夜国产| 国产91美女高潮| 日韩综合无码一区久久92| 韩国久久97| 2017av无码免费无线播| 成人A片男人的天堂| 免费一级a毛片久久久久久鸭绿欲| 久操操| 黑人无码一区二区| 日产操逼| 久久9精品| 亚洲另类久操网| 亚洲欧洲日韩天堂av| 亚洲天堂日本| 69精品人人人人| 91精品无码久久久久久久| 少妇六月天| 欧美成人性爱视频免费观看| 久操频道免费在线呗看| 91在线限制级| 亚洲精品久久久久久久蜜桃臀| 中文字幕在线免费观看 | 欧美激情激情xxxx欧美专区| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 涩涩涩综合| 蜜桃臀AV在线| 午夜天堂网| 欧美天天干| 日韩91网站| 人妻 制服 日韩 中文 在线| 开心五月婷婷激情| 2019久久久久久久久福利| 嗯~啊~快点 死我视频免费看网站| 亚洲AV成人在线| 色婷婷五月天| 亚欧无码在线| 色网站导航大全| 亚洲一区制服诱惑| 成人一区二区三区四区| 粉嫩国产精品久久粉嫩| 动漫爆乳3D奶水一区在线观看 | 亚洲精品一二三四区| 乱论91| 啊啊啊爽爽| 日本天堂在线播放| 91国产美女丝袜足交精品视频 | 欧美性91| 久久99干一本高清| 老女人碰碰在线碰碰视频| 日韩亚洲美女一区久久| 99激情| av在线一区二区三区| 秋霞色色影院| 92一区二区| 无码heyzo高清一区| 国产一级作爱毛片| 91精品人妻电影| 3p国产色噜噜一区| 久久久久免费少妇| 另类图片五月| 91精品丝袜久久久久久| 思思热免费在线视频| 久久久四区| 97在线播放| 亚州欧美一区| 国产熟女二区| 久久久久元码视频| 黄总AV色图| 日本有码久久| 超碰调教97| 激情第四色| 在线观看日韩av不卡| 天天操天天干一区二区| 天天躁日日躁成人字幕aⅴ| 中文字幕一二三| 大香蕉中文网| 日韩91网站| 欧美中日韩XXXX| 午夜美女诱惑电源网| 热热色综合网| 成人青青草原伊人| 91爱啪| 亚洲熟女人妻中文字幕一区二区| 99999re| 亚洲色婷婷久久久综合日本| 色图综合网| 丰满美女一级毛片在线播放| 五月婷婷丁香六月丁香| 国产原创精品| 日本一天色道久久久精品视频| 少妇一区二区三区在线观看| 亚州综合电影| 久久中文字幕女同性恋一区| 超碰美国| 国产成久久综合片| 亚洲AV无码黄色强奸| 国产精品制服丝袜清纯唯美 | 欧美黑人精品一区二区| 911粉嫩人妻| 色婷婷狠狠| 亚洲免费精品一区| 色哟哟精品1精品2| 无码精品久久| 日韩黄色成人性爱| 欧美性爱97超碰| 嗯~啊~快点 死我视频| 青青草大香蕉在线视频| 精品人妻高清麻豆av| 午夜精品久久99蜜桃的功能章节| 国产欧美日韩一区二区三区| 国产精品亚洲一区二区三区四区| 人妻加勒比东京热| 91挑色欧美| 欧美综合综合| 国产Av超碰| 熟女视频久久| 熟女一区二区三区| 久久久蜜桃臀无码视频| 国产日韩在线播放av| 操逼日韩无码| 91国产在线精品| 亚洲熟女综合一区二区| 福利社区午夜一区二区| 99热| 青青青草原| 免费看片黄| 婷婷综合网站| 日韩精品怡红院| 久久精品店| 国产精品蜜乳AV| 亚洲成人一二三区| 日韩人妻无码不卡网站| 婷婷午夜成人色中色| 青青11操操操操操操操操| 我爱搞逼综合网| 亚洲精品国产精品成人| 99视频只有精品| 老司机午夜福利视频一区二区| 精品对白久久不卡| 婷婷丁香六月| 国产AV线| 妺妺跟我一起洗澡没忍住| 国产青视频| 东京热双插| 热久日综合| 91色图| 日本三级韩国三级99| 日韩精品一区,二区 九九...老司机| 中文操逼字幕| 人妻啊啊人妻啊| 丁香7月婷婷| 久久无码成人| 日韩视频小说在线观看| 久久精品毛片免费不卡| 一区二区三区无卡视频在线观看| 韩日色费| 色娱乐色呦呦夜夜夜夜av| 日韩亚洲欧美中文字幕| 曰韩精品九九无码| 久久久久久999| 久久九色| 男人天堂新| 亚洲黑丝在线| 99re免费| 日韩在线97| 国产操伦| 大白逼三四级| 香蕉久久国产AV一区二区| 97国产精选| 国产精品久久久久久久久AV大片| 91中文字幕制服丝袜免费视频| 人人摸人人叼| 久久日韩肥臀| 日夜啪电影| 中文操逼字幕| 色综和网| 懂色AV一区二区三区| 欧美 亚洲精品首页| 色欧美天天| 日韩欧美性吧婷婷乱伦大香蕉| 夜夜爽妓女| 精品国产91av一区二区三区| 97超色| 激情av| 老妇女91| 夜夜狠狠躁日日躁色视频| 在线观看无码三级少妇| 国产av色网| 天天综合精品| 久久男人精品| 欧美中文综合| 国产妇女精品视频青青草| 欧美日韩香蕉| 在线午夜成人无码视频| 国产精品电影推荐| 国产刺激视频| 可以免费观看的日韩av毛片| 亚洲本色精品一区二区久久| 久久熟女嫩草成人片免费| 国产玖玖| 黄页视频网站野外| 91另类| 中文在线视频| 96AV久久久| 欧美精品自慰系列寂寞少妇| 国产一级舔足在线观看| 国产天天噜一噜久久久| 日本999精品视频| 婷婷亚洲天堂| 亚洲导航深夜福利| 国产成人无码a| 97超碰精品图片| av操操不卡| 少妇滛荡视频| 国产精品岛国片在线观看| 狠狠干91| 免费簧片在线观看| 欧美亚洲素人制服精品| 欧美成人免费在线观看| 懂色av一区二区三区天美传媒| 青草影院内射高潮| 欧美日韩亚洲高清不卡一区二区三区| 超碰成人最新最好看| 黑人猛交| 一区二区高清视频| 欧美亚州综合网图片| 日韩精品电影| 伊人丝袜美腿高跟在线观看高清| 97超碰国产亚洲精品资源| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲成人一区二区精品| 精品夜夜澡人妻无码| 欧美亚洲国内自拍| 性爱综合网| 人妻在线视频| 亚洲一区二区三区四区视频| 国产一区二区a毛片| 一起草三级AV电影在线观看 | 国产精品欧美日韩久久| 无码最新| 亚洲国产高清福利视频| 永久免费发布性爱网| 伊人久久在线视频观看| 岛国毛片在线观看免费| 日韩免费三级黄片电影| 人人操人人操人人操人人操人人操人人人11.CM | 亚洲做性| 啊啊啊好大好深| 人妻激情视频| 狠狠入| 日本布卡一区二三区| 啊啊啊啊,啊啊好多水| 99热18这里只有精品| 污污污8888| 蘋果手機免費看成人Av| 欧美传媒一区| 夫妻AV网站| av橘色网站| 亚洲资源一区| 日韩成人无码| 操B在线观看| 丁香五月综合| 资源在线观一 二| 久久发布国产伦子伦精品| 丝袜综合色图| 麻豆区久久久久亚| 熟妇熟女一区二区三区| 91免费看一区二区三区| 午夜视频好爽啊| 亚洲日韩国产欧美综合v| **一级毛片国产| 中文无码一二三区| 97网址97| 国产 日韩,欧美 自拍| 五十路六十路素人熟女| 免费看欧美美女黄色大片| 五月色网| 亚洲大色堂| 91蜜桃传媒精品久久久一区二区| 欧美色院| 国产黄片在线免费观看| 91丨九色丨东北熟女| 在线人妻熟女一区二区三区四区五区| 亚洲鸥美色图| 超碰欧美97| 密乳AV免费观看| 99无码视频| 97精品视频免费| 91亚洲狠狠色| 久久中文字幕一区不卡| 国产按摩一区二区三区| 欧美在线色| 精精品人妻一区二区三区| 国产精品亚洲无码| 啊啊啊啊啊操我视频| 午夜精品久久999热蜜桃介男人用| 在线洲亚线| 日韩精品国产一区二区| 情色AV电影| 超碰综合97在线| 国产在线综合福利网站| 伊人久久婷婷| 久久九九精品一区二区| 国产精品点击进入在线影院| 黄页大片在线观看| 校园春色第一页| 国产精品麻豆视频网站| 欧美亚男人的天堂| 色区97| 婷婷激情五月天小说网| 97自拍一区| 91精品91久久久久77777俄罗斯老妇姓x| 亚洲精美粉嫩嫩泬在线观看| 青青草视频在线观看一区二区| 久久线上视频免费看| 美國A片| 欧美中文狠| 男人天堂电影院| 国产精品老师| 精品久久久一本一道| 中文字幕日韩人妻视频| 刺激性视频黄页| …亚洲黄色厕厕女女在线播…| 中文字幕亚洲在线一区| 超碰97人人乐| 人人做人人妻人人夜视频| 国产成人天堂| 欧美一级久久久久久久大片动画| 91精品婷婷国产综合久久竹菊| 大香蕉一级黄色片久久| 97综合在线观看| 不卡日本一区二区| 精品v1区| 精品成人亚洲午夜电影| 中文字幕AV片| 久操网线| 欧美情色亚洲| 婷婷日韩一区二区三区中文字幕在线| 伊人宅男大香蕉| 人妻人人操| aV中文麻| 欧美日不卡| 欧美成人性活片| 色综合一区二区三巨| 亚洲综合九九| 青青操少妇| 久操com| av线电影| 久9热| 女性91网站| 亚洲综合有玛| www.av在线视频| 中文字幕免费看| 九九久久精品| 天天懆天天日| 91中出在线| 青草视频人妻在线观看| 亚洲色图欧美视频| 久久东京热久久| 爱欲AV| 强奸乱伦av电影| 狠狠入| 老熟女区| 国产精选三级在线观看| 色欲av国内精品久久久久久| 久久婷婷亚洲欧| 国产精品久久久久综合| 亚洲色人| 亚洲欧美综合网站| 久操B网| 亚洲无码免费看| 四虎影视国产精品| 97色诱| 亚洲一区中文字幕一区| 韩国免费播放一级毛片| 熟妇一区,二区,三区。| 自拍丝袜美腿人妻| 日本 欧美 国产一区| 51国产午夜精品视频| 国产中午字一暮区| 日韩熟女精品无码专区一区二区| 乱伦av.com| 另类图片综合| 久久久三区二区一区| 欧美五区| 精品国产乱码久久久久久影片| 午夜亚洲国产理论秋霞| 欧美天天弄| 热热色青青草| 狠综合网| 99久久无色码| 99热精品免费| 欧美性爱另类综合| 嫩草影院在线观看精品| 精品高清av中文字幕| 九九九精品美女| 久久久精品一区二区| 蜜桃臀 后入 一区 二区 三区 在线| 国产精品香蕉热久久新品| 免费久久一级毛片大黄| 天美精品原创av片国产| 亚洲欧美清纯| 91情色在线| 丰满少妇精品一区二区| 欧美与日韩97| 好屌色综合| n1038 一二三区| 天天综合~91入口| 欧洲熟妇xxXx欧美老妇裸体| 中文字幕一区电影在线观看| 超清福利精品视频在线| 日韩性爱啪啪视频| 久久亚洲中文字幕视频| 国产精品第一区第一页| 曰韩人妻中文字幕在线| 极品销魂美女一区二区| 人妻丝袜美腿中文字幕| 亚洲欧美天堂| 欧美精品69性爱| 中文乱码字字幕在线第5页| 亚洲色图亚洲| 人妻夜夜爽天天爽三区麻豆AV网站| 精品免费囯产一区二区三区 | 日韩精品视频在线观看一卡二卡| 国产亲戚伦亲在线| 影音先锋中文字幕日本好一区二区| 精品无码不卡视频| 久草网站免费在线观看| 亚洲九月丁香| 丁香五月激情综合国产| 中文字幕在线日亚州9| 丁香婷婷久久 | 精品午夜福利| A 天堂| 成人自拍三级在线观看| 午夜AV人气不卡| 国产精品久久久久久久毛片1| 郑州宾馆老熟女露脸啪啪| 亚洲AV无码黄色强奸| 国产一区二区在线电影| 丁香六月激情综合| 亚洲AO在线| 老鸭窝黄色视频网站| 亚洲欧美91√| 人妻久久一区二区三区 | 99.色网| 91丝袜激情在线| 国产熟女自拍| 亚洲综合97| 久思思热视频在线观看| www.色婷婷色综合| 人人色人人射人人妻| 亚洲欧美一区二区不卡视频播放| 久久久性少妇| 国产老太乱伦一区| 色综合av男人天堂| 欧美制服另类丝袜| 麻豆传媒一区二区在线观看| 少妇熟女一区二区三区| 97在线精品观看视频| 五月天色色网站| 99re3这里只有精品| 久日综合网| 久草新在线| 911av网站免费观看| 一起草av| 欧美色图 人妻| 精品免费囯产一区二区三区| 无码高清少妇久久| 天天天天干| 亚洲男人的天堂网| 欧美性爱第1 页| 女人双腿搬开让男人桶| 欧美日韩人人早| 91中出视频| 国产AV无码AV| 麻豆人妻少妇在线免费观看| 国产一二三福利视频网| 国产精品呦一区二区三区| 欧美一区91大爱| 欧美第一页| 永久免费av无码网站国产app| 亚洲欧美中文日韩视频中国语 | 最新av网站在线观看| 日日操天天操| 超碰色美女| 国产av又色又爽又黄| 亚洲国产精品久久久久婷婷青年| 国产视频97| 日本免费一级AAA大片器| 中文字幕艹艹| 色欧洲| 婷婷五月天激情小说| 欧洲亚洲人人爽爽视频| 人人贴人人摸| 亚洲成人精品久久久| 久久久久久久久999| 国产精品亚洲免费| 久操视频在线| 丰满人妻av一区二区三区| 国产精品久久久久久久免牛肉蒲团 | 天天看片青娱乐| 国产色精品午夜大片| 久久精品店| 骚乳在线| 97香蕉网| 国产精品一区二区三区在线密挑| 少妇熟女视频一二三区| 亚洲精品无码久久AV| 久久神马影院| 国产第12页| 欧美天堂日韩三级国产传媒| 欧美一级在线观看成人| 又大又白奶子| 久夜视频| 嗯啊啊啊轻点视频| 高清国产精品福利网站| 欧美熟爽综合| 成人性爱免费播放| 人人摸人人干| 日本精品网站在线中文| 久久久久久久久久久999| 国产精品日韩在线一区| 亚洲精品一卡二卡三卡福利视频网站| 逼操网站| 久草老司机| 操逼操操操91| 久久久夜夜夜| 国产精品对白内射| 亚洲高清无毛一区二区| 日韩无码AB| 亚洲制服欧美另类内射| 999热日韩精品| 天天摸,夜夜摸| 男人天堂网站| 黑人与人妻| 免费的黄片wwwwww| 国产精品视频在线观看| 毛片17S| 2020中文在线一区二区三区| 久九9精品| 激情综合五月| 无遮挡又黄又刺激的视频| 国产 大胆 对白| 色色色色综合网| 翔田千里A片一区二区| 欧美日韩国产电影| 国产无套粉嫩白浆在| 久久春色| 久偷拍欧美日韩三区| 99热啪啪| 伊人五月天婷婷| 少妇人妻在线| 久久人妻97久久久久久久| 国产女人与拘做受视频免费| 久久久久久久久9| 国产精品经典一卡久久久| 操逼1区| 91天堂网| 日本孕妇孕交| 中日无幕一二三四区| 3d成人精品一区二区| 96久久久久| 日韩精品影视| 亚洲不卡不卡中文字幕不卡| 最近2019中文字幕国语免费版| 啊啊啊爽爽| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 亚洲天堂资源| 九九九久千久久激情蜜桃在线看 | 啊啊啊好想要| 久久精品一区二区三区蜜桃臀| 久热色情精品| 天天色播| 老司机老司机午夜影院| 9色国产精品一区粉嫩| 麻豆色约约| 亚洲国产丝袜在线观看| 久久久精久久久| 99色在线| 欧美精品自慰系列寂寞少妇| 日韩熟女乱伦中出| 91狠狠综合| 久久精品无码一区二区三区| 久久精品国产亚洲粉嫩| 岛国不卡超碰护士AV在线播放| 污到发麻的视频 国产| 狠狠操狠狠| 色情五月丁香| 久久东京国产精品视频| 男女激情黄色网址| 国产亚洲精品美女久久久| 性综合网| 超碰97欧美| 福利视频网站| 久草资源在线| 亚洲成人ab| 91精品国产91熟女| 日曰骚久久精品| 久久蜜桃一区二区| 97精品人妻一二三四| 亚州Av天美传媒| 懂色av中文字幕一区二区三区天美| 国产精品网站免费| 青春草A| 日本999精品视频| 天天做天天爱天天爽AV| 亚洲AV资源| 91国产大片| 97精品97| 少妇99| 欧美久久人体| 欧美春色| 啊啊啊好想要| 手机在线免费看的av| 国产在线强奸视频| 自拍偷拍 高清无码| 国产欧美岛国精品一区| 欧美午夜视频精品久久| www欧美性爱| 九九热在线精品视频| 婷婷尹人大香蕉免费| 91麻豆天美国产欧美日| 热天堂一区二区| 久久久久亚洲一区女同性恋中文字幕| 成人黄页| 亚州欧美在线| 伊人影院日本| 亚洲1区2区三区高清中文字幕| 国产精品久久久久久久黄无码| 97摸视频| 久久熟女人| 中文字幕88av在线| 亚洲区限制级 99| 久久免费9| 操婢日韩| 国产版a级片直播在线| 国产人妻精品久久久一区二区三区 | 99ri精品| 白丝AV网站| 伊人嫩草| 91福利网在线观看| 婬女免费一二三区A片| 国产精品久久久亚洲一区| 狠狠图片青青草| 天天夜夜rb| 国产在线能看的你懂的| 国产乱人伦AVA麻豆软件.| 精品一区二区三区蜜桃臀赵总 | 家庭乱伦性爱av| 七久久久| 欧美丝袜美女电影一二三四区| 国产一二三在线视频五十路| 国产成年精品高清在线观看91| 91|九色|国产熟女| 久久久中文版| 97超碰欧美| 日韩激情中文字幕有码| 日韩AV中文字幕电影| 国产精品午夜福利| 色五天伊人| 曰韩欧美国产传媒麻豆第一区| 超碰97亚洲区| 大二网站亚洲| 久久乐| 女上位精品在线| 91伊人久| 久久啊哟| 超碰在线91| 欧美极度丰满熟妇hd| 欧亚不卡| 亚洲无线观看久久| 综合网色| 噜噜瑟| 国产日韩欧美亚洲精品95| 91老司机在线视频免费观看 | 日韩欧美中文日韩欧美色| 手机不卡视频不卡在线一二三区| 性生活性生大爱77AV国产| 国产精品久久久久无码A√| 久久久亚洲精品电影免费看| 97亚洲综合在线| 精品v日韩欧美国产| av72网| 青草草免费网站av| 一区二区三区四区五区高清无码永久视频 | 91亚州欧美| 丰满人妻一区二区三区色-百度| WWW黄片COM| 欧美洲精品一级| 黄色AAAAAAAAAAA大片| 久久99999| 无码高清操逼网址| 色狠人在线99| 人妻献身系列第54部| 殴美综合色88| 东京热视频网| 伊人国产视频| 可能人人看人人摸| 亚洲综合射| 激情国产乱伦Av| 校园春色欧美| 国产又操| 一区二区三区一亚洲中文字幕、综合区灬| 美国一区二区免费视频| 中文字幕精品三级久久久| 日本欧美亚洲高清在线看| 久久久久921| 97摸视频| 亚洲 欧美 第一页| 天综合网| 精品美女久久久久| 狠综合网| 国产精品岛国片在线观看| 热久久无毒不卡| 激情av| 激情综合网亚洲| 九热大香蕉| 懂色av色欲av蜜臀av| AV色五月天| 国产欧美一区激情交| 日韩十八禁| 91黑丝少妇| 亚洲欧洲综合av在线| 男女性扦B| 九九色色| 黄色香蕉视频网站一区| 亚洲的天堂网| 九九碰九九爱97超碰| 天天躁日日躁狠狠躁| 五月天伊人| 亚洲成人福利电影免费| 这里只有精品97| 96AV久久久| 亚洲免费人妻在| 精品视频在线观看| 久久同城AV| 婷婷色网| 91精品久久久| 操熟女91| 日本蜜桃| 尹人大香蕉视频在线| 性色av大全| 台湾佬大香蕉| 操逼精品视频| 色综合五月天| 欧美性爱第一区| 特污精品女优骚货黄色视频在线免费观看| 密臀在线免费观看| 日韩中文字幕视频在线观看| 国产精品人妻无码久久久老鸭窝| 欧美激情久久久久| 婷婷色一区| 国产精品久久成人免费| 日韩欧美亚洲自拍偷拍| 国产熟女自拍| 四虎国产成人精品免费一女五男| 高清国产av无码| 十八禁视频一区二区| 欧美在线亚洲| 色www精品视频在线观看| 人妻啊啊人妻啊啊| 秋霞免费AV| 日本爽爽爽爽爽爽免费视频| 9.1小视频| 屌妞视频久久久久久久| 国产欧美第五页| 国产成人久久久精品免费AV| 欧美日韩黄片精品在线| 日本加勒比无码专区| 婷婷精品国产欧美精品亚洲人人爽| 人妻日日夜夜精品| 色色色热| 五月婷婷久久综合| 无码精品久久久天天影视| 97在线视频观看| 黑人性欧美| 97国产精品久久久久 | 黄色操人| 襙一襙| 97爱亚洲| 三四中文字幕| 亚洲 欧美 日韩另类 麻豆| 日本最新免费韩国1区2区视频播放| 国产欧美伊人| 国产原创自拍| 啪啪91| 丁香五月久久| 国产亚洲国产超碰| 亚洲制服欧美另类内射| 国产操逼逼网| 久草国产在线视频| 高潮毛片无遮挡高清免费| 视频一区二区三区精品| 国产精品人妻无码久久久老鸭窝 | 中国大陆国产高清AⅤ毛片| 99e久久国产精品| 高清在线不卡一区二区 视频| 国产成人在线观看网址| 97色碰| 国产高清成人免费视频| 欧美男人天堂| 在线视频 亚洲精品| 国产精品com| 欧美色www亚洲国产阿娇要播| 日本一级真人黄色性爱视频| 新亚洲无码| 亚洲欧美日韩制服另类| 无码久久亚洲高清,| 无码人妻一区二区三区色欲aⅴ| 国产在线能看的你懂的| 成人自拍三级在线观看| 日本免费中文字幕在线| 欧美黑人精品一区二区| 免费人成?大片在线播放| 性爱1区| 日日干日日| 91人妻视频在线| 婷婷激情一区二区三区俺也去| 丝袜综合色图| 加勒比海成人视频网| 亚洲s色图| 国内一级精品| 亚洲av性爱电影| 日本日逼高清| 国产女人成人精品视频| 五月天开心网| 国产农村妇女精品1区二区| 一区二区蜜臀| …中文字幕亚洲乱,97人妻无码费视… | 91操熟女视频| 欧美一区二区三区不卡高清视频| 免费少妇一区二区| 色噜噜人妻丝袜a∨先锋影 | 91丝袜激情在线| 亚洲久久东京热一二三四五区视频| 欧美色亚洲色| 高潮精品| 国产成人免费观看在线视频| 99久久婷婷国产综合精品草原| 久无码| 亚洲AV在线资源| 色综91| 久操网视频| 天综合网| 91色综合色| 成人线上超碰| 亚洲色图亚洲无码强奸乱伦| 亚码激情| 毛片麻豆91糖心精品毛情片| 精品国产AV一区天美传媒| 午夜乱轮操逼视频免费看| 爱做久久久久久| 用力操死我| 91操熟妇| 91精品久久久| 骚货人妻偷情自拍在线视频| 欧美精品三区| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 日韩av乱伦| 天堂精品小草| 天天cao在线| 在线观看亚洲专区| 黑丝91视频| 欧洲一区二区| 欧美性爱日韩性爱| 久久久久无码| 国产伊人精品在线| 国产精品婬乱一级毛片彝族| 爆乳免费黄网站| 欧美中日韩XXXX| 岛国网址国产| 麻豆乱码久久精| 少妇无码999| 无码 有码 国产18p| 四虎国产成人精品免费一女五男| 美女久久久久久久久久久| 操逼操网| 麻豆精品天美| 久久这里只精品免费福利| 中文字幕啊啊啊在线观看视频| 综合性视频99| 老熟女乱子伦中文字幕一区二区| 神马视频久久久久久| 漂亮人妻被强中文字幕hd| 国精精品无码一二三区水多多| 97这里都是精品| 秋霞 色色| 91狠狠综合久久久久久| 精品国产乱码久久久| 欧美精品1区2区3区| 中国黄色特级精品一区二区三区片| 亚洲国产精品V?在线播放| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 极品美女嘿咻| 综合色色婷婷| 加勒比综合在线| 久久草大香蕉| 天天影视91看看| 成人午夜视频免费播放| 啊啊啊男女| 亚洲综合婷婷| 人人妻人人爽一区二区三区| 99亚洲天堂| 色臀AV| 亚洲综合97中文网| 蜜臀久久99精品久久久久| 精品久久視頻在线| 俄罗斯及免费在线看| 91原创在线观看| 啪啪视频免费在线观看| 91在线美女| 精品无码一区二区三区| 大香伊人在线一区| 成年人三级黄色片视频| 97精品在线| 天堂8在线新版官网| 欧美色图99| 国产九月婷婷| 欧洲黄色网| 性色av一区二区| 操逼操网| 日韩九九九| 中文字幕91综合| 欧洲亚洲国产综合在线| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 操操逼操操逼操操逼逼| 精品制服美女中文一区二区三区| 亚洲精品成人| 激情综合网亚洲| 国产91精品久久久久久久网曝门| 最新岛国大片| 蜜臀99久久精品久久久久久| 婷婷色一区| 少妇啪啪自拍| 啊啊啊啊嗯嗯在线久久久| 天天影视网综合少妇| 久久久久亚洲三级电影| 91 国产丝袜在线播放-百度| 亚洲精品亚洲人成人网| 视频国产欧美在线播放| 欧洲小说色图视频另类| 综合久久婷婷| 98人妻精品一区二区色欲| 91精品久久久久久久久久| 人人操av| 巨爆乳一区二区爆乳区| 偷窥自拍亚洲| 国产久久视频| 破苞ⅩXXX性无码动漫无码| 色牛aV| 夜夜做夜夜爽精品视频| 超AV色女| 多乙久久久久久| 十八禁啪啪视频| www.acm成人黄色毛片| 亚洲。日韩。欧美| 欧美成人一区二区三区在线播放| 91黑丝在线| 本道在线| 美女91在线观看| 色色色综合网| 色嗨嗨在线| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 亚洲欧美成人在线| 天天操人人操狠狠插| 91久| 亚洲啪啪啪啪视香蕉| 91美女在线精品视频| 亚洲欧美激情在线视频| 超碰人人操97碰| 97天堂| 97ai亚洲| 精品久久9| 久偷拍| 嗯啊免费视频| 97自拍视频在线| 久草网站免费在线观看| 免费观看网黄| 91成人18| 果冻传媒A片麻豆熟妇人妻| 亚洲色图综合网| 日韩二三区| 97超碰jingpin| 午夜丁香婷婷| 国产精品99久久久www| 精品人体无圣光凹凸| 秋霞一集毛片观看| 9Ⅰ老熟女| 97免费视频在线| 超碰97久| 久久女女| 久久精品高清无码一区| 超碰在线97国产| 国产25页| av麻豆啪啪| 亚洲图片欧美制度| 精品视频日日夜夜| 东京日日夜夜| 三级三级三级日本99| 狠狠操综合| 九九色婷婷| 色色综合网站| 91在线丝袜视频| 插B在线观看| 亚洲欧美天| 欧美青青草视频| 国产精品午夜福利视频| 国产青视频| 亚洲限制级| 裸体1区| 超碰97在线色男人??| 日韩欧美资源| 中国黄色特级精品一区二区三区片| 色香伊人| 久久机热| 中文字幕免费在线观看 | 国产高清无码一区三区二区| 国产精品免费1区2区视频| 四虎国产精品永久入口| 激情 欧美 亚洲 小说| 欧美亚洲一级在线观看| 国产亚洲中文不卡二区| 人人摸人人添人人操 | 国产久久久9999|