欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

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、自動(dòng)生成的路由表甚至還有平臺(tái)構(gòu)建產(chǎn)物。這些文件不是人寫的也不會(huì)有人去評(píng)審但它們實(shí)打?qū)嵦稍诜帜咐锇?80% 多的真實(shí)業(yè)務(wù)覆蓋率拖到 70% 出頭。remove_from_coverage這個(gè) Dart 三方庫就是專門處理這個(gè)問題的按 glob 規(guī)則從 lcov.info 里剝離指定文件的記錄段只留下真正需要審計(jì)的業(yè)務(wù)代碼覆蓋數(shù)據(jù)。最近我們?cè)诎岩惶?Flutter 基礎(chǔ)設(shè)施往鴻蒙側(cè)遷移順手就把remove_from_coverage做了一次鴻蒙化適配。原版工具在標(biāo)準(zhǔn) Flutter 工程里很好使但放到鴻蒙工程里路勁格式、自動(dòng)生成目錄、工具鏈版本全變了。適配過程中踩了不少坑也把覆蓋率工具鏈從“單數(shù)字展示”升級(jí)成了質(zhì)量審計(jì)治理的一環(huán)。這篇記錄就是這次適配的完整過程包括原理拆解、補(bǔ)丁思路、CI 門禁集成和排查實(shí)錄適合正在做鴻蒙 Flutter 工程收尾、打算給流水線加覆蓋率門檻的團(tuán)隊(duì)參考。1. 項(xiàng)目背景覆蓋率報(bào)告里的“數(shù)字泡沫”到底怎么來的1.1 一張 lcov 報(bào)告兩套數(shù)字先還原一下最典型的場(chǎng)景。Flutter 工程里執(zhí)行flutter test --coverage會(huì)在coverage/下生成lcov.info這是標(biāo)準(zhǔn)的 lcov 格式一行一個(gè)記錄段描述每個(gè)源文件被覆蓋到的行數(shù)。本地開發(fā)時(shí) IDE 插件直接解析它CI 里則把它喂給靜態(tài)分析平臺(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就會(huì)大量出現(xiàn)。這些代碼在編譯期生成邏輯重復(fù)、特征明顯測(cè)試用例不會(huì)刻意去測(cè)它們但它們的 DA 記錄實(shí)實(shí)在在地進(jìn)入覆蓋率統(tǒng)計(jì)。舉一個(gè)我處理過的真實(shí)口徑。假設(shè)工程總可執(zhí)行行數(shù)是 20000 行其中業(yè)務(wù)手寫代碼 16000 行自動(dòng)生成和依賴注入代碼 4000 行。某次測(cè)試跑完總共覆蓋了 14000 行但這 14000 行里包含了 1000 行生成代碼的覆蓋記錄。統(tǒng)計(jì)口徑分母覆蓋行數(shù)覆蓋率原始總覆蓋率200001400070%排除生成代碼后的業(yè)務(wù)覆蓋率160001300081.25%同一批測(cè)試兩個(gè)數(shù)字差了 11.25 個(gè)百分點(diǎn)。哪個(gè)更能代表工程質(zhì)量顯然是后者。前者就是“數(shù)字泡沫”它讓你以為業(yè)務(wù)代碼測(cè)試得不夠?qū)嶋H上可能是分母被無關(guān)文件撐大了。1.2 為什么審計(jì)團(tuán)隊(duì)需要一個(gè)“干凈”的覆蓋率如果覆蓋率只有一個(gè)總數(shù)字質(zhì)量審計(jì)就會(huì)很尷尬。管理層看的是趨勢(shì)團(tuán)隊(duì)看的是門檻但如果 CI 里只展示 70% 這個(gè)總覆蓋率團(tuán)隊(duì)的注意力就會(huì)從“業(yè)務(wù)邏輯有沒有測(cè)”轉(zhuǎn)移到“怎么把分母縮小”。有人會(huì)去給自動(dòng)生成代碼寫冗余測(cè)試有人會(huì)把排除規(guī)則寫得過于寬松甚至有人直接把不達(dá)標(biāo)的分支摘出統(tǒng)計(jì)范圍。這些動(dòng)作的本質(zhì)都是在修飾數(shù)字不是提升質(zhì)量。審計(jì)需要的是“可解釋的覆蓋率”。所謂可解釋是指任何人拿到這份報(bào)告都能說清楚覆蓋率的分母由哪些文件構(gòu)成、為什么這些文件被排除、排除后還剩多少核心業(yè)務(wù)代碼??偢采w率適合做宏觀趨勢(shì)觀察核心業(yè)務(wù)覆蓋率才適合做發(fā)布門禁和 MR 評(píng)審依據(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ī)則后對(duì)每個(gè)文件段的SF:路徑做匹配。如果匹配上整段直接丟棄不寫入輸出文件沒匹配上則原樣保留。處理完之后輸出一份新的 lcov 文件。這里有個(gè)容易被忽略的關(guān)鍵點(diǎn)lcov 的不同文件段之間是相互獨(dú)立的。刪除一個(gè)文件段不會(huì)影響其他段里的DA:記錄也不需要重排行號(hào)因?yàn)槊總€(gè)DA:記錄都自帶行號(hào)。所以remove_from_coverage不需要像源碼級(jí)覆蓋率工具那樣維護(hù)行號(hào)映射它只要做好“段級(jí)別過濾”就夠了。理解這一點(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/下任意層級(jí)遞歸匹配。但規(guī)則寫起來有幾個(gè)容易踩的邊界第一路徑分隔符。lcov 里的SF:路徑通常用正斜杠/但 Windows 本地開發(fā)時(shí)某些工具鏈會(huì)輸出反斜杠\。glob 匹配默認(rèn)按/處理一旦混入反斜杠規(guī)則就失效。第二相對(duì)路徑前綴。有的工程SF:是lib/foo.dart有的卻是./lib/foo.dart。多一個(gè)./lib/**就匹配不上。適配時(shí)最好統(tǒng)一做歸一化而不是靠規(guī)則去猜。第三規(guī)則范圍。**/*.g.dart會(huì)把test/下 mock 產(chǎn)生的 g.dart 也過濾掉如果這些 mock 文件本身是你想統(tǒng)計(jì)的對(duì)象就會(huì)誤傷。建議規(guī)則盡量指向明確的頂層目錄比如lib/**.g.dart而不是到處匹配。2.3 自己寫腳本過濾與直接 fork 的三點(diǎn)權(quán)衡有人會(huì)問lcov 過濾這么簡單為什么不自己寫個(gè) Python 腳本我一開始也是這么想的但評(píng)估下來有三點(diǎn)權(quán)衡第一lcov 格式的邊界情況比想象中多。文件路徑里可能出現(xiàn)空格、括號(hào)DA:行可能有逗號(hào)帶執(zhí)行次數(shù)記錄段之間偶爾會(huì)有空行腳本解析時(shí)這些都要處理干凈否則線上報(bào)告會(huì)莫名少數(shù)據(jù)。第二glob 規(guī)則看起來簡單真要做到跨平臺(tái)、遞歸匹配、排除和保留語義清晰直接用成熟庫比自己實(shí)現(xiàn)可靠得多。remove_from_coverage已經(jīng)把這些邏輯封裝好了拿過來改比從零寫省力。第三后續(xù)維護(hù)問題。覆蓋率工具不是寫完就完團(tuán)隊(duì)會(huì)不斷往排除規(guī)則里加目錄CI 里還要支持配置化。用開源工具做底座fork 一份維護(hù)比每個(gè)人手里一份隨手腳本更可控。所以在“自己寫 10 行腳本”和“直接 fork 適配”之間我選了后者。3. 鴻蒙化適配要跨過的三個(gè)坑路徑、產(chǎn)物目錄和工具鏈3.1 路徑風(fēng)格與相對(duì)根目錄先觀察 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:路徑仍然以工程根為相對(duì)根但文件來源會(huì)混入不同模塊。適配第一步不是寫代碼而是先拿到一份鴻蒙工程的 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)置這些鴻蒙路徑的識(shí)別能力而且如果SF:里混入了絕對(duì)路徑或者./前綴規(guī)則匹配也會(huì)靜默失敗。3.2 自動(dòng)產(chǎn)物目錄識(shí)別不是只有 .g.dart 需要過濾標(biāo)準(zhǔn) Flutter 項(xiàng)目的臟數(shù)據(jù)主要是*.g.dart、*.freezed.dart、.dart_tool下的工具生成代碼。鴻蒙工程多出來的幾類“新面孔”更陰間一類是oh_modules/。鴻蒙側(cè)的三方依賴通常會(huì)解壓到工程根的oh_modules/目錄個(gè)別的 Dart 源碼也會(huì)被拷貝到這里。它們是依賴包不是業(yè)務(wù)代碼測(cè)試用例跑到的覆蓋記錄計(jì)入分母會(huì)嚴(yán)重拉低真實(shí)覆蓋率。另一類是.hvigor/。鴻蒙構(gòu)建系統(tǒng)的緩存和臨時(shí)文件目錄里偶爾會(huì)出現(xiàn)腳手架自動(dòng)生成 Dart bridge 文件。這些文件每次構(gòu)建都可能變化如果把它們計(jì)入覆蓋率報(bào)告的可復(fù)現(xiàn)性就很差。還有build/、entry/build/這類產(chǎn)物目錄。理論上 lcov 不應(yīng)該收錄它們但在多模塊工程里偶爾會(huì)有漏網(wǎng)之魚。我建議默認(rèn)內(nèi)置一組鴻蒙排除目錄這些規(guī)則應(yīng)該經(jīng)過團(tuán)隊(duì)評(píng)審而不是一個(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 腳本遷移成本會(huì)變大。兼容原參數(shù)再增加新參數(shù)是最穩(wěn)妥的做法。4. 適配實(shí)操從 fork 到 CI 門禁一次講透4.1 源碼獲取與本地環(huán)境準(zhǔn)備適配的第一步是把源碼拉到本地。我們?cè)诖a托管平臺(tái)上 fork 了一份remove_from_coverageclone 到工作目錄然后切到一個(gè)獨(dú)立的適配分支。環(huán)境準(zhǔn)備方面需要三樣?xùn)|西鴻蒙 Flutter SDK、對(duì)應(yīng)的 Dart SDK、一份能跑通flutter test --coverage的模擬鴻蒙工程。沒有真實(shí)工程也沒關(guān)系可以先造一個(gè)最小樣例但一定要包含oh_modules、.hvigor這類目錄名否則自測(cè)覆蓋不到關(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ī)則比對(duì)的。鴻蒙工程里最容易翻車的就是路徑風(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會(huì)被轉(zhuǎn)成lib/core/http.dart規(guī)則統(tǒng)一用正斜杠書寫。第二./lib/foo.dart變成lib/foo.dart不需要用戶為前綴差異寫兩套規(guī)則。此外如果SF:出現(xiàn)了絕對(duì)路徑我會(huì)判斷它是否以當(dāng)前工程根開頭如果是就裁剪成相對(duì)路徑如果不是則原樣保留。這一步能避免用戶規(guī)則里寫絕對(duì)路徑前綴的尷尬。4.3 內(nèi)置鴻蒙默認(rèn)排除規(guī)則新增 --harmony 開關(guān)鴻蒙化適配不能只靠用戶每次手動(dòng)寫一堆oh_modules/**容易漏。我加了一個(gè)--harmony開關(guān)開啟后自動(dòng)追加默認(rèn)排除規(guī)則const harmonyDefaultGlobs [ oh_modules/**, **/oh_modules/**, .hvigor/**, **/.hvigor/**, **/build/**, **/.dart_tool/**, ];這些規(guī)則和用戶的-r規(guī)則是并集關(guān)系不是互斥關(guān)系。也就是說只要任一規(guī)則命中該文件段就會(huì)被移除。命令行使用方式變成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è)都沒動(dòng)--harmony只是追加能力。這樣做的好處是團(tuán)隊(duì)切換到鴻蒙環(huán)境時(shí)CI 腳本只需要增加一個(gè)參數(shù)不需要重寫規(guī)則集。4.4 單元自測(cè)與真實(shí)工程驗(yàn)證適配代碼改完不能直接上 CI得先自測(cè)。我寫了兩類驗(yàn)證第一類是用臨時(shí)構(gòu)造的 lcov 樣本跑單元測(cè)試。樣本里故意放這些文件段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 文件理論上不會(huì)出現(xiàn)但我也驗(yàn)證了規(guī)則不會(huì)誤傷第二類是在模擬鴻蒙工程里跑真實(shí)流程。先執(zhí)行flutter test --coverage拿到原始coverage/lcov.info。然后跑適配版對(duì)比清理前后的記錄段數(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原始總覆蓋率用于宏觀趨勢(shì) # core_coverage清理后的業(yè)務(wù)覆蓋率用于發(fā)布門禁門禁規(guī)則我建議這樣設(shè)core_coverage低于閾值時(shí)構(gòu)建失敗total_coverage不設(shè)硬門檻但出現(xiàn)單次下降超過 2 個(gè)百分點(diǎn)時(shí)自動(dòng)給團(tuán)隊(duì)發(fā)告警。閾值不能拍腦袋定先跑兩周看團(tuán)隊(duì)歷史的 70 分位和 90 分位再確定一個(gè)“跳一跳夠得著”的值。lcov.clean.info 還要繼續(xù)往上報(bào)。靜態(tài)分析平臺(tái)直接解析它展示的就是團(tuán)隊(duì)真正關(guān)心的業(yè)務(wù)覆蓋率。原始 lcov.info 保留在構(gòu)建產(chǎn)物里審計(jì)時(shí)如果需要排查“為什么數(shù)字變了”還能回看原始數(shù)據(jù)。5. 常見問題與排查技巧實(shí)錄5.1 排除后覆蓋率紋絲不動(dòng)八成是路徑?jīng)]對(duì)上適配版剛上線時(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ī)則里還是正斜杠第三路徑是絕對(duì)路徑規(guī)則寫的是相對(duì)路徑。我的經(jīng)驗(yàn)是不要憑記憶寫規(guī)則一定先看真實(shí)路徑。提示所有規(guī)則修改完先用--output生成一份臨時(shí)文件對(duì)比 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/目錄里面不是自動(dòng)生成文件而是開發(fā)手寫的 API 客戶端代碼。這條寬規(guī)則把這些真實(shí)業(yè)務(wù)代碼段全濾掉了分母一下子少了覆蓋行也少了最終業(yè)務(wù)覆蓋率反而崩了。這件事給我的教訓(xùn)是排除規(guī)則必須有強(qiáng)特征不要只憑目錄名猜測(cè)。.g.dart、.freezed.dart這種后綴特征就很好因?yàn)樗鼈冎豢赡軄碜源a生成器。目錄名排除盡量限定在oh_modules/、.hvigor/、.dart_tool/這類根級(jí)目錄不要用**/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)境下會(huì)把路徑寫成反斜杠而我的歸一化邏輯只處理了讀取SF:時(shí)的路徑?jīng)]有處理規(guī)則本身。后來我統(tǒng)一了三處策略讀取路徑后轉(zhuǎn)正斜杠、規(guī)則書寫要求一律正斜杠、對(duì)比時(shí)大小寫不敏感但保留原始路徑輸出。如果團(tuán)隊(duì)里有 macOS 或 Windows 混合開發(fā)環(huán)境這三個(gè)統(tǒng)一能省掉大量莫名其妙的“本地好了 CI 掛了”問題。5.4 大倉庫性能問題glob 展開和規(guī)則順序適配版上線后跑了兩個(gè)星期發(fā)現(xiàn)處理時(shí)間偶爾會(huì)從幾百毫秒漲到幾秒。查了一下是某次評(píng)審時(shí)往規(guī)則里加了一條特別寬的**/bridge/**這個(gè)規(guī)則會(huì)遞歸展開大量子目錄匹配開銷明顯增加。lcov 記錄段少則幾千多則幾萬。每條規(guī)則都做一次遞歸 glob 展開性能自然往下掉。我建議規(guī)則里能用lib/**.g.dart就用這種帶頂層目錄限制的寫法少用裸**開頭的規(guī)則同時(shí)把精確規(guī)則放在前面寬泛規(guī)則放在后面。如果實(shí)現(xiàn)一次命中即跳過精確規(guī)則先命中就能減少后續(xù)匹配次數(shù)。實(shí)測(cè)下來幾千條記錄、十條以內(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í)則管理成本很高?,F(xiàn)在拆成兩層指標(biāo)數(shù)據(jù)來源用途建議閾值原始總覆蓋率lcov.info宏觀趨勢(shì)、環(huán)境變化告警70% 以上核心業(yè)務(wù)覆蓋率lcov.clean.info發(fā)布門禁、MR 評(píng)審80% 以上總覆蓋率是用來“看趨勢(shì)”的它如果突然大幅下降說明有新的大塊代碼未覆蓋值得關(guān)注。核心業(yè)務(wù)覆蓋率是用來“卡發(fā)布”的它直接反映手寫業(yè)務(wù)代碼的測(cè)試充分度。兩個(gè)指標(biāo)同時(shí)看才不會(huì)顧此失彼。6.2 增量覆蓋率怎么和 remove_from_coverage 配合整體覆蓋率有一個(gè)滯后問題這次改動(dòng)了 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ī)器人的評(píng)論內(nèi)容每次提交自動(dòng)發(fā)一條“本次新增代碼覆蓋率 xx%低于閾值不可合并”。團(tuán)隊(duì)對(duì)增量的感知會(huì)比整體指標(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ī)則變更走代碼評(píng)審歷史可追溯新同事也容易理解“分母是什么、為什么排除這些文件”。我個(gè)人的體會(huì)是覆蓋率治理做到這個(gè)程度才算真正從“報(bào)告精簡”走到了“質(zhì)量審計(jì)治理”。remove_from_coverage的鴻蒙化適配只是個(gè)起點(diǎn)真正有價(jià)值的是背后那套可解釋、可配置、可持續(xù)改進(jìn)的質(zhì)量閉環(huán)。后面如果再遇到新平臺(tái)適配這套指標(biāo)模型和配置管理方式可以直接復(fù)用不需要再從頭趟一遍。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
www.成人婷婷综合| 天天做天天爱天天玩夜夜爽| 亚洲爆乳无码精品AAA片蜜桃| www.99在线| 嫩草乱码一区三区四区| 色黄啪啪| 91精品国产91久久久久青草| 色七色九九| 天天拍天天操| 欧美啄木乌丝袜人妻系列| 五月婷婷碰碰| 久久婷丁香五月| 婷婷涩涩五月天| 婷婷激情视频| 天天日天天色| 亚洲狠狠操| 超91在线视频| 狠狠搞狠狠操| 免费99色| 五月婷婷色激情| www.久9| 五月天精品| 一本久道综合99| 天天爱综合网| 天天噜天天插| 99久久婷婷五月| www.久久色.com| 久久久天堂国产精品女人| 2023天天日夜夜爽| 日韩精品99久久| 六月丁香啪啪啪| 婷婷色激情网| 荫道BBWBBB高潮潮喷| 五月丁香六月婷婷不卡免费无码 | 玖玖爱资源站| 婷色五月天| 色宗合,宗合网| 人妻第九页| 夜夜干 夜夜操| 九九99九九99| 97人碰人操| 99视频这里有精品| 桔色成人官方网站| 日韩成人AV在线| 九九色热| 91碰超| 丁香五月婷婷狠狠色| 日本欧美成人片AAAA| 中文字幕性爱丰满| 九九热在线99| 激情操逼婷婷| 婷婷丁香人妻天天爽| 日本一级一级一级一级| 黄色片久久| 十一月婷婷激情四射| 婷婷五月天av| 亚州色综合| 丁香五月激情网| 亚洲天堂aaa| 996er热| 欧美顶级少妇做爰HD| 综合久久五月| 五月综合视频在线| 九九精品丁香花| 成人精品亚洲性爱| 久久天堂婷婷五月| 激情操逼婷婷| 五月丁香色色网| 综合久色五月| 99久久婷婷国产综合精品草原| 日产精品久久久久久久蜜臀| 91丨九色丨大屁股| 五月婷婷六月色| 成人欧美一区二区三区在线观看 | 玖玖99精品视频| 久久婷婷五月综合| 另类图片天天影视在线观看| 五月天成人综合| 色婷婷五月天激情久久| 久久久大香蕉| 成人色图情色成人网 www.5b5b5bcom 五月天 | 黄网在线免费观看| 嘿嘿视频免费看9| 67194成I人在线观看线路1| 欧美亚洲999| 色婷婷色综合激情91| 欧美 日韩 人妻 高清 中文| 色播综合| 99人人干| www.狠狠| 亚洲高清在线| 99九九在线| 九九精品网| 狠狠色丁婷婷日日,伊人激情综合网| 色综合久久综合| 免费看欧美成人A片无码| 色色丁香五月天| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 97很鲁在线视频| 婷婷色色宗合网| 五月丁香综合啪啪| 夜夜爽天天爽| 色色色五月天婷婷| 天天激情5月天亚洲| 婷婷精品性性性性性性性| 99在线观看| 热久91| a色色色色色| 国产精品色一哟哟| 五月天色色网站| 操操精品| 天天撸天天干天天插| 色五月综合在线| 国产亚洲成AV人片在线| 人人干天天舔| 色五月 五月婷婷| 亚洲精品久久久久久久久久吃药| 色5月婷婷| 成人丁香婷婷五月天| 狠狠色狠狠操| 色婷婷色和| 97精品人人A片免费看| 成人婷99最新| 玖玖热视频| 亚洲成人一区| 日本一级特黄大片AAAAA级| 亚洲天堂aaaa| 99热免| 99热这里只有精品96| 丁香婷婷色五月| 99视频91| 99精品97| 婷婷综合五月| 这里只有精品热| 狠狠操.com| 99色6爱9热| 黄色一级影片| 久久网站免费亚洲| α久久| 99惹精品视频| 色五月天成人| 色五月天丁香| 国产精品涩涩涩视频网站| 天天爽天天干天天| 国产精品久久久丁香五月八戒视频| 五月香蕉婷婷| 一起草性爱不卡视频| 天天视频亚洲| 久久婷狠狠色| 九九干视频| 97精品在线| 另类精品视频在线观看| 99久久久久| 99久久人妻精品无码二区| 亚洲成人在线观看av| 久久久久9久无码视频| 婷婷丁香五月视频| 成年人夜夜喷水| 新久久五月天激情| 五月婷婷丁香色吧网| 色婷婷五月天激情综合 | 五月久久婷婷丁香| 婷婷 激情 五月| 另类图片 五月激情| 亚洲久热无码| 另类小说五月天| 五月天色五月| 亚洲最大视频网站| 婷婷丁香五月天哟啪| 久久网站观看免费欧洲国产| 热久久99热欧美国产亚洲| 日本高清久| 色色色99| 丁香五月婷婷高清| 欧美狠狠草| 五月天婷亚洲天综合网综合| 99re在线视频| 第1影院之五月婷婷| 九月婷婷在线观看| 婷婷六月丁香在线| 九九操操| 亚洲乱码日产精品BD| 狠狠色综合五月人人| 久久多色| 九九無妻| 中文字幕人妻熟女在线| 99热这里只有精品免费| 热996精品在线观看| 成人丁香五月| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 激情丁香久久久久久| 亚洲激情免费视频| 中文av在线观看| 开心婷婷五月天激情网| www.97干视频| 五夜婷婷| 精品久久久999| 天天日夜夜B久久| 综合色综合| 一级二级色大片| 91狠狠色丁香婷婷综合久久| 超碰三级片| 精品婷婷五月视| 天天操天天插| 丁香九月色| 另类天堂| 99啪啪网| 91熟妇大香蕉| ss99热| 超碰人人99| 婷婷丁香18| 日韩ww| 丁香伊人综合| 婷婷影院A成人| 色久一| 99精品偷拍视频| 亚洲日韩欧美综合VA| 九月av在线| 亚洲性爱电影| wwW天天干| 蜜臀久久99精品久久久久久酒店| 婷婷五月天免费视频| 亚洲视频国产一区| 亚洲激情综合| 亚洲性爱区无码区| 99手机在线精品视频| 日本色色图| 丁香女人五月天| 五月色情| 五月天另类激情在线| 日本三级中文字幕| 亚洲乱码日产精品BD| 色五月丁香五月婷婷五月成人网| 97五月婷婷| AV操逼网| 激情桃色网| 性爱久久| 色香欲综合| 婷婷午夜精品久久久| 色五月婷婷五月天| 九九色图| 2022人人操人人看| 欧美Va日本Va| 久操97| 激情丁香六月| 在线综合91| 狠狠干五码| 福利视频在线播放| 99这里精品| 无码区婷婷五月花开| 开心婷婷五月综合| 亚洲成人黄色网| 熟女色色一区二区| ss视频xx91| 国内一级片| www.com五月天| 伊人色综合影院视频| 婷婷色综合| 79色色色色| 亚洲色色五月天| 超碰人人草| 色婷婷第四色| 婷婷五月天电影网| 五月综合丁香婷婷| 色婷婷电影网| 开心婷婷五月激情网小说| 色丁香五月天| www久久久久久| 丁香婷婷久久老熟女综合网| 丁香婷婷五月份| 综合久| 成人网址在线观看| 国产精品久久久99视频| 五月丁香婷婷综合网| 久热99| 亚洲国产婷婷色五月| 亚洲日本韩国| 日本在线99| xxxx五月| 91丁香五月| 久久久婷婷五月天| 久草xx性爱视频| 色九九九综合| 开心激情站| 激情亚洲婷婷| 精品人妻一区二区| 五月久久亚洲| 天色综合网| 九月婷婷激情| 丁香色五月婷婷17C| 天天干天天拍| 亚洲色vA| 97欧美在线| 九九九九毛片| 日日夜夜青青草| 99久操视频| 四月婷婷五月色综合| 丁香五月天堂婷婷| 亚洲五月天激情| 五月丁香婷婷导航视频| 日本va视频| 思思精品热在线| 精品综合网在线| 色丁香五月婷婷在线| 丁香婷婷成年| 婷婷五月大香蕉| 五月天无码| 国外亚洲成AV人片在线观看| 狠狠狠五月婷婷六月丁香| 超碰免费电影| 日本五月婷| 色综合爱综合| 婷婷国产欧美97| 99热国产精品| 亚洲丁香网| 婷婷五月丁香色综合| 色色色欧美| 六月丁香激情综合| 2015好吊操| 91疯狂操操操操| 91干婷婷| 97精品人人A片免费看| 另类激情五月在线视频欧美| 激情五月丁香六月综合AVXXXX| 五月婷综合| 五月婷婷免费在线视频| 丁香五月天信号| 五月婷婷综合激情小说| 婷婷五月丁香啪啪| 热久久视频99| 久99热| 欧美色激情四射| 五月天婷久精视频| 五月综合777| 久久色9| 国产成人精品一区二三区熟女在线| 99久久综合| jiujiu热在线视频| 99久久.www| 五月天丁香网站| 日韩av网址大全| 成人欧美一区二区三区在线观看| 色频玖玖五月天| 色情婷| 男人天堂99| 五月婷婷伦理| www.91.com黄| 99ri视频在线观看| 少妇被下春药玩弄A片| 激情综合网,婷婷五月天| 嫩草视频观看| 97色综合| 亚洲成人AV高清字幕| 婷婷激情中文综合| 91呦呦呦| 中文字幕网伦射乱中文| 天天激情站| 色播播五月| 丁香桃色综合网| 97人人搞| www91精品| 丁香月五月天婷婷久久| 色综合夜夜| 99久热| 色综合九九| 人妻九九九九| 久久五月婷| 99热老网站| 日本一级淫| 久久五月网| 操逼在线视频| 啪啪91| 色婷婷最新域名| 9久热精品在线视频| av中文在线| 99免费视频| 99这里只有精品99| 久久人妻人人槡| 婷婷黄色五月天在线视频| 97超碰人人操| 日本人妻久久| 日韩黄色影院| 国产毛片欧美毛片久久久| 久久久久激情| 欧美婷婷日本| 亚洲熟妇AV综合网五月丁香伊人| 九九热视频免费| 99热亚洲| 99日本视频在线观看专区| 亚洲精品婷婷| 丁J香六月首页| 五月丁香六月成人| 色色色色热| 午夜成人网站在线观看| 国产成人av在线播放| 97超碰99热99| 99热九九九九| 一区操| 日本三级大片| 激情五月五月婷婷| 中美日韩成人在线| 91操熟女| 伊人激情| 色五月亚洲| 婷婷激情综合网| 久久怕怕视频| 婷婷丁香六月天| 99精品综合| 丁香成人五月天| 激情综合色播| 婷婷激情五月天激情| 成人婷婷五月| 亚洲va欧美va天堂v国产综合| 丰满人妻一区二区三区| 亚洲另类视频| 五月天另类小说| 五月天综合网| 色五月综合| 婷婷成人基地| 91超级碰人人操| 色亭亭九月| 五月天丁香色色| 久久精品熟女亚洲AV麻豆| 国产日产亚洲系列最新| 人妻在线观看视频| 国产精品视频网| 九九 激情 网| 欧洲亚洲免费视频9| 久久女伦| 色色色97| 色婷婷激情| 九月影院義母在线播放| 丁香五月综合久久八| 五月激情精品视频| 丁香五月婷婷激情中文| 操97免费超级视频| 99九九99九九九视频精彩| 99无码超碰| 五月天色色网站| 婷婷五月天色色| 日本视频不卡123区| 97超级碰碰碰久久久| 97碰在线免费观看| 91在线视频综合| 久久性爱视频| 99这里只有精品在线| 久久66成人网站| 99精品免费| 深爱激情六月天| 亚洲精品V天堂中文字幕| 中文字幕人成乱码在线观看| 91AV视频| 五月婷婷色播视频| 天天综合天天玩夜夜玩天天玩夜夜玩 | 9色91视频| 97操男人的天堂| 五月丁香婷婷色色色| 五月天国产成人| 五月婷婷激情综合拍| www.成人婷婷综合| 五月丁香六月激情欧美综合| 97人碰人操| 啪啪操网| 99热免费精品热久久66| 狠狠干无码| 色色色婷婷五月| 无码人妻AV久久久一区二区三区| 婷婷色偷拍| 欧美群妇大交乱婬网| 婷婷激情五月天在线视频| 色综合天天天天做夜夜| 天天日天天插| 免费人人操| 免费精品66| 久久六月综合| 无码激情AAAAA片-区区| 激情五月婷| 丁香五月天五码婷婷| 97碰人人操| 韩国真做片在线观看| 丁香五月成人丝袜| 五月丁综合在线观看| 思思99热| 婷婷伊人久久| 日韩成人综合网| 丁香五月综合激情久久潮喷| 色情丁香五月天| 噜噜噜久久| 少妇被躁爽到高潮无码文 | 99狠狠| 七七婷婷综合| 97色碰| 五月综合激情视频| 99久久久久久www| 黄色国久久| 婷婷色在线| 熟女激情五月天| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 91热在线| 久久视频这里99| 99热超碰在线| 中文字幕婷婷| 性爱久久| 伊人青涩网| 日日操,日日爽| 97福利视频| 五月婷婷九九久久| 日本在线99| 激情综合亚洲色婷婷五月| 亚洲中文乱字字幕在线永久| 色婷婷888| 丁香五月婷婷激情视频播放| 这里只有精品视频在线| 狠狠爱综合网| 97操视频| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 婷婷成年人免费视频| 麻豆观看夏晴子| 六月丁香婷婷五月天| 九九 激情 网| 色婷婷综合影院| 涩婷婷五月天| 岛国AAAV| \\五月天婷婷激情| 亚洲五月天激情| 亚洲色综合| 狠狠爱婷婷| 男人視頻站| 天天日夜夜帕| 激情五月天网站| 色久婷婷五月| 亚洲综合婷婷| 五月婷婷综合网| 五月天丁香综合久久国产| 年轻的妺妺伦理HD中文| 色碰碰| 少妇综合网| 天色色综合网| 99热激情| 91久久久久久久久久| 十月色综合| 激情五月最新网址| 五月天激情无码| 久久九九激情五月天| 思思re视频在线| 国产精品天天狠天天看| www.狠狠操.com| 亚洲色色色| 91精品熟女| 五月激情小说| 色婷婷五月天成人网| 日产精品一线二线三线芒果| 五月综合六月丁| 五月天婷婷在线观看精品男人| 九九婷婷网五月天| 九色在线五月婷婷网址| 丁香五月开心婷婷| 中文字幕天天干| 天天操天天操天天操天天操天天操| 9在线9在线婷婷在线国产| 激情丁香图片| 一起草无码| 高清视频一区| 玖玖99福利| 天天操综合网| 丁香五月天婷婷久久综合| 婷婷丁香久久| 激情久久综合| 天天色粽合合合合合合合| 深爱网深爱综合网| www99热| 538久久| 精品久久久中文字幕大豆网推荐理由| 久久婷婷婷婷伊人| 激情五月婷婷啪啪| 91操操| 激情婷婷色色| 国产在线aaa片一区二区99| 五月丁香色五月| 草榴视频黄色网| 久久色亭亭五月天| 全亚洲最大的婷婷五月天网站COM| 99热这里都是精品| 五月香蕉综合| 99热伊人综合| 精品人妻久久久久| 91狼友视频在线观看| 激情五月天小说网| wWwCom夜操wwW| 五月丁香综合啪啪啪啪啪| 九九色之九九色之88| 丁香五月情| 激情 五月 婷婷 丁香| 五月婷婷丁香91| 天天插综合| 成人AV在线电影| 国产古装妇女野外A片| 狠狠干五月丁香| 丁香五月停停av| 五月婷婷丁香俺日污视频| 九九aV| 99久久国产宗和精品1上映| 激情五月丁香六月| 久久机热这里只有精品免费视频| 影音先锋秋秋五月婷婷| 成人亚洲精品| 丁香五月六月激情| 91丨九色丨国产在线| 婷婷五月天亚洲天堂| 97人人干视频| 久久婷婷五月综合伊人| 97极品在线| 激情五月影院| 性小说五月天| 丁香五夜激情四射夜夜夜| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 久久久久久丁香五月| 国产av影片| 久久久久亚洲AV综合| 久久婷婷五月天激情| 99精品视频免费在线播放| 中文字幕日产A片在线看| 久久婷婷五月综合| 26uuu欧美亚洲日韩| 日韩无码性爱| 中文字幕丰满孑伦无码专区| 五月婷婷丁香| 丁香五月亚综合图片| 色八月婷婷| 色一情一乱一乱一区9| 黄桃AV无码免费一区二区三区| 色婷婷综合网站| 丁香五月婷婷深爱综合激情| 九伊人网| 人妻少妇色综合| 色五月欧美| 色欲资源网| 99久热在线精品| 99久热视频在线| 激情综合五月| 狠狠xx| 婷婷色色播五月天| 五月天天丁香婷婷在线中| 丁香五月婷中字在线| 一级性爱视频| 久99久精品视频| 亚洲综合色丁香婷婷六月| 五月丁香激情啪啪| www.91AV.com| 日韩操人| 久久婷婷五月天激情四射| 天天搞天天色综合| 深爱五月天 开心网| 人人草公开操| 九九热超碰| 色婷婷五月天成人网| 色综合9| 国产一区二区av免费| 激情床戏| 国产无人区大片| 婷婷开心五月| 伊人五月成人| 国产,欧美,日韩,性爱| 婷婷免费成人视频| 久青青久| 婷婷五月黄色激情在线| 91蜜桃婷婷狠狠久久综合9色| 色噜噜狠狠色综合成人99| 99re思思热久久| 亚洲色婷婷99一9|| 99热国产国产| 婷婷另类开心| 国产Va视频| 精品一二三区视频立| 色色色欧美| 色婷操逼| 97香蕉碰碰人妻国产欧美| 99日逼视频| 久久婷视频| av人人操| 久99久视频精选| 五月婷婷亚洲综合在线| 婷婷WWW久久| 任我肏视频精品| 色婷婷丁香AV综合| 九九九九成人| 丁香六月婷婷社区| 一本色道久久综合狠狠躁小说| 92久操视频| 大香久久伊人网| 99少妇精品| www.com.色色| 久久久.www| 日本va欧美va国产激情| 天天日日夜夜| 国产美女无遮挡裸体毛片A片| 狠狠综合网| 无码人妻少妇色欲AV一区二区 | 9精品视频在线观看| 六月婷婷七月丁香| 九月影院義母在线播放| 日本老女人黄页在线播放| 亚洲色精彩| 99热6这里之有精品| 色综合色欲综合天天免费| 色五月婷婷、老熟女| 欧美性爱5月天天天看| 另类图片 五月激情| 激情九九综合网| 天天色天天爱天天爱天天爱y| 五月天久久婷婷| 久久婷丁香五月| 九月av| 久色| 26uuu成人网| 202丰满熟女妇大| 人人操9| 丁香五月婷婷天堂大香蕉| 无码区婷婷五月花开| 伊人网欧美在线男人天堂五月丁香 | 久久婷婷免费| 综合久久五| www一起操在线观看| 婷婷九月激情| 开心五月丁香综合久久| 色色网五月激情| 伊人五月婷婷| 五月丁香日本片| 五月婷婷乱| 久久久噜噜噜久久人妻| 丁香婷婷五月| 九月丁香八月婷婷加勒比| 啪啪丁香五月| 夜夜夜夜夜骑撸| 久婷五月| 婷婷五月成人| 色亭亭九月| 欧美在线看| 五月天激情在线视频| 五月丁香操亭亭网| 97干97色| 成人va在线观看视频| 第五色婷婷| 久久艹 五月天| www。五月,com| 国产午夜精品一区二区| 五月天色婷伊人| 激情五月天激情小说| 五月天婷婷综合网| 国产SUV精品一区二区6| 五月丁婷香| 色。 日日日| 99久视频| 久久久国产精品黄毛片| 71在线精品视频一区| www.激情在线| 99er久久| 超碰不卡在线| 九九热九九| 天天干夜夜谢| 伊人综合网站| 综合激情在线视频| 色婷婷五月天在线| 丁香五月先锋| 久久久高清| 9+1视频网址| 久久偷拍综合五月天| 日本久久精品| 日韩av在线免费观看| 26UUU在线观看| 色婷五月| 五月婷婷久久综合| 吊色AV男人的天堂| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 99免费在线| 99热这里都是精品| www.jiujiujiu| 伊人午夜综合色啪| 五月婷婷丁香| 99热亚洲| 99在线精品在线视频| 99久久综合| 99热这里都是精品| 四色99久久| 碰97 久| 九九色色| 色五月综合在线| 日本不卡一区二区三区| 狠狠舔| 日本久久性| 墨西哥毛片内射精| 777影视理论片大全在线观看| 1024在线视频| 五月开心婷婷| 五月天社区| 国产亚洲成人综合| 亚洲一区二区无码蜜乳av| 337p大胆噜噜噜噜噜91Av| 黄色激情久久| 天天五月情| 亚洲精品久久久久久久久久飞鱼| 色,激情五月天| 日本视频99| 黄色片avv| 夜夜操少妇| 久久婷婷热| 综合久| 色色色婷婷五月天| 91精产品自偷自偷综合| 六月色播| 亚洲精品另类| 综合伊人狠狠| 色欲AVV| 天天日,夜夜爽| 99国产精品白浆在线观看免费| 热99这里只是精品| www.久久99| 91九色国产在线| 婷婷狠狠18禁久久| 97日在线视频| 成人免费高清在线播放| 亚洲亚洲人成综合网络| 91操色| 日本一级一级一级一级| 五月天婷婷三级黄| 91人妻PORNY九色大屁股| 这里只有精品视频222| 欧美日韩999| 99色天堂| 26uuu最新地址| 99视频内射三四| 超碰99在线观看| 伊人干综合| 五月婷婷片| sesesesezonghe| 97久久视频| 国产成人网址| 丰满人妻一区二区三区| 99热这里只有精品21| 嫩BBB槡BBBB搡BBBB| 夜夜 操无码| 成人网站免费在线播放| www.精品99| 色色色色网| 婷婷丁香色五月天久久88| 国产 码在线成人网站| 丁香激情合作五月| 婷婷综合仓库中文| 99热这里有精品24| 婷婷六月香| 天天插综合| 色爽九九| 久久色天堂| 欧美激情丁香五月| 色丁香五月婷婷| 天天日天天操天天干| 久久99热在线观看| 天堂综合久| 亚洲天堂热| 久久婷五月婷| 亚洲色五月| 国产精品激情五月天色婷婷| 大香伊人婷婷| 第四色大香蕉| 99爱视频精品| 一起草av| oumeisesewang| 青青久久五月| 99在线热视频| 婷五月天天| 中文中文在线| 99热这里精品| 97九色| 99国产精品久久久久久久久久久| 天天橾夜夜爽| 亚洲操精品| 欧美成人精品A片免费一区99| 丁香五月综合亚洲| h亚洲| 色999五月色| WWW五月天| 色吊丝中文字幕| 91Chinese在线| 国产26uuu视频| 婷婷五月天成人视频| 操九色| 婷婷五月丁香综合激情小说| 久久99网| 激情综合五月| 五月综合视频在线| 九月色婷婷婷| 老司机伊人| 婷婷五月天亚洲综合网| 玖玖午夜视频| 香蕉久久国产AV一区二区| 伍月激情天| 99婷婷五月天激情| 超碰久热| 日本婷婷| 丁香婷婷久久激情| 色九九七七| 四虎国产精品永久在线国在线| 色色亚洲五月天| 天天狠天天狠| 丁香五月天日韩无码| 五月丁香大香蕉| 婷婷精品性性性性性性性| 激情五月天色网站| 91九色PORNY肉丝在线| 狠狠五月天| 五月婷成人网| 182TV大香蕉| 草草夜夜操| 激情五月丁香婷婷| 激情五月天之六月婷婷| 五月天丁香久久| 激情五月丁香五月| 我去色色网五雨天| 亚洲、热| 色墦五月丁香| 久久码久久无清| 成人精品视频99在线观看免费| 五月婷婷六月激情| 思思热在线视频99| 色婷婷五月天av在线| 国产第99页| 精品亚洲国产成AV人片传媒| 超碰97干| 五月天,激情四射,婷婷频道| 爱爱色五月天| 久操激情| 五月婷婷国产| 日韩黄色中文字幕| 99热综合网| 五月丁香六月婷婷的女人| 狠狠看狠狠| 色v综合网| 婷婷五月天天激情| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 色爱综合网| 五月婷婷69| 婷婷五月AV| 久婷婷五月丁香在线观看| 久久九九@| 五月婷婷丁香大香蕉| WWW.久久.COM| 天天干天天干天天| 婷婷五月情| 久草xx性爱视频| 婷婷五月丁香综合亚洲| 丁香六月婷| 97人人干。| 夜色五月天| 激情五月天电影| 中文字幕综合| 六月婷婷色综合| 婷婷五月花西瓜| 婷婷色五月天综合网| 久鲁鲁色网| 啊V视频在线观看| 九月综合| AV色色天堂中文| 人妻丰满精品一区二区A片| 26uuu日韩| 99久久99久久综合| 五月天丁香网站| WWW.17C亚洲精品| 俺也高清无码高清视频| 丁香五月亚洲无码| 婷婷六月色丁香视频在线观看| 丁香五月天AV在线| 色婷婷网| www色婷婷| 97色久| 久久99看免费| 九九九九九九毛片| 色色丁香五月天社区| 久久婷婷大香蕉| 婷婷97C| 99热99艹在线观看| www.超碰97| 亚洲 在线 另类| 操碰色一区就去操| 色综色网| 日本三级第一页| 久久综合55| 成人综合视频网址| 久久99最新地址| 久久婷婷七月丁香| 热日韩欧美| 大香蕉久久伊人网| AV在线不卡网站| 中文字幕不卡视频| 欧美久久九九| 五月天婷婷丁香人人操91| 性色综合网| 色综合香蕉| 色婷婷五月天无码视频| 色欧美日| 中文字幕综合| 五月丁香激情四射综合| 日韩九区| 乱女乱妇熟女熟妇综合网站 | 丁香五月婷婷亚洲色图| 99精品一二三四视频| 狼人狠狠操| 色婷婷成人| 人妻人人操| 白人荫道BBWBBB大荫道| 色噜噜狠狠色综无码久久合欧美| 极品少妇XXXX精品少妇偷拍| 苗黎美女四级成人版一级二级毛片| 可以直接看的av| 中文字幕人成乱码在线观看| 六月婷婷毛片| 六月丁香婷婷综合影院| 五月天婷婷爱| 天天操夜夜爽天天操| 天天综合.com| 五月开行婷婷色五月| AVDV久久| 天天干 夜夜爽| 国产精品久久久久久久久久免费| 亚洲高清在线| 大香蕉伊人丁香五月| 香蕉色色网| 九九九九九九九九九九九九九九九九九九九在线视频 | 日本一级黄色片。| 久久婷婷丁香花综合网| 超爽内射| 99热碰碰| 九九九这里只有精品| 五月天自拍网| 色爱亚洲| 婷婷在线免费| 中文字幕精品无码一区二区| 新激情综合| 婷婷综合久久| 色婷婷丁香五月天| 亚洲AV日韩无码| 99国产精品白浆在线观看免费| 91碰操| 久久综合丁香五月| 天天肏天天爽夜夜爽| 久99久精品视频| 国产成人精品一区二三区熟女在线| 色婷婷色综合| 亚洲人妻av| 久久婷婷成人视频| 99久在线精品99re8热| 五月丁香大香蕉| 亚洲狠狠爱婷婷| 国产成人在线不卡AV| 99热国产这里只有| 成人丁香五月天| 丁香五月色| 少妇性BBB搡BBB爽爽爽视頻| 日韩五月婷婷| 天天拍夜夜撸| 天天爱天天做天天操| 五月丁香影院| 亚洲av网址| 九九精品片一| 色五月五月天色婷婷色五月| 99热这里是精品| 日韩无码乱轮| 亚洲激情高潮| www.婷婷,com| 六月激情婷婷| 色色色9 9 9| 99激| 色婷视频| 99精品视频网站| 99国产97在线,| 久久er免费视频| 婷婷六月丁香五月| 色久天| 这里只有精品96| 99无码超碰| 五月婷婷色激情| 色婷婷电影网| www99xxxx五月丁| 色婷婷五月天激情久久| 国产.亚洲.欧洲视频在线| 久久黄色片| 婷婷天堂视频| 天天摸天天高潮天天爽| 欧美婷婷五月丁香| 久久精品噜噜噜成人A∨色欲| va婷婷在线| 激情5月婷婷| 大地资源色婷婷视频在线 | 俺去也五月天| 91妻人人爽人人看片| 91久久久久久久久18| 亚洲热久久| 九九九九精品精| 成人一级片| 日婷婷| 黄网在线免费| 五月婷婷在线视频免费观看| 色婷婷五月天成人网| 色色婷婷五月天| 97碰碰视频在线观看免费| 婷婷丁香激情五月天色色| 国产激情久久| 久久98| 婷婷色激情网| 九九精品亚洲| 91狼友视频在线观看| 天天射射夜| 色播六月| 五月停停999| 91色吧网| 人人操人人看97干| 99精品小视频| 超碰操日| 日日操,夜夜撸| 日本欧美成人片AAAA| 立川无码av| 日韩aaa| 欧美一级色| 久久婷婷网站| 99欧州偷拍视频| 99久久玖玖| 九九色情网五月天| 婷婷五月天开心激情网| 色婷婷成人色网| 色999;丁香五月| 极品人妻VIDEOSSS人妻| 婷婷五月天伦理| 婷婷在线播放| 色的色综合| 婷婷亚洲色| 亚洲婷婷月丁香五月| 99激情视频| 一夜福利不卡| 亚洲日本韩国| 色婷五月天亚洲| 久久综合久色欧美综合狠狠 | 夜夜骑日日夜夜| 曰韩少妇内射免费播放| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 啪啪婷婷五月天激情| 91九色中文| 五月丁香六月激情综合| 九九干视频| 国产成人AV在线| 丁香婷婷五月激情| 久久ab| 亚洲人人96@| 亚洲人人操| http://www.lingjunshare.com/ | 丁香六月婷婷综合欧美| 91超级碰人人操| 天天插天天干| 五月天伊人综合| av狠狠操| 97色色色视屏| 天天狠狠干| 超碰99热精品| 99精品视频偷拍| 99热综合在线| 精品一二三区久久AAA片| 伊人婷婷五月| 婷婷色影音天| av五月天婷婷丁香| 啪啪黄页网| 激情综合久久| 天天草婷婷五月| 色级停停| 丁香六月久久| 97av在线视频| www.狠狠操| 六月丁香激情婷婷| 99综合99| 九九碰九九爱97超| 99免费热在线精品| 狠狠色综合五月人人| 亚洲无码99| 91超碰在线观看| 亚洲乱码日产精品BD| 五月婷婷六月婷| 色激情五月| 伊人网大香| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 亚洲国产网址| 婷婷综合亚洲| 色色色色色综合| 亚洲五月婷天天操| 五月婷中文娱乐综合| 久久92| 婷婷久久五月| 丁香av网| 九九色逼| 亚洲无码成人性爰网| 美国不卡视频| 99热超碰在线| 亚洲一区二区无码蜜乳av| 六月丁香婷婷色综合| 日韩AV一区二区三区| 午夜丁香婷婷| 婷婷五月婷婷五月| 丁香婷婷五月色成人网站| 中文字幕 码精品视频网站| 99热这里只有精品18| 91操熟女| 666555。COm毛片| 久久大香蕉同僚| 99热 在线观看| CAOBIBI| 99热官网| 2025色婷婷| www色婷婷久久综合久色| 在线播放 精品| 五月丁香啪啪| 久久精品亚洲一级牲爱综合| 久久总和99| 伊人久久丁香狠狠婷婷综合香蕉| www.婷婷,com| 五月天婷婷影院影院| 91人人操.COM| 国产婷婷婷| 日本99视频| 天天日夜夜爽。| 无码色色色色色| 超碰97色| 国产这里只有精品| 狠狠色成人影片| 色六月丁香婷婷狠狠干| 久9无码视频| 99视频热99| 99热这里只有精品66| 思思热精品在线视频| 五月婷婷偷| 色哟哟www| 99热在线播放精品| 日本丁香五月| 思思热在线| 婷婷激情另类| xx久久| 久在线综合69| 91色久| 97碰超级人人看| 俺去也五月天婷婷| 狠狠色狠狠干| 外国碰视频网站97| AA片在线观看视频在线播放| 成人五月天丁香| 婷婷丁香人妻天天爽| 97激情五月天| 五月天激情黄色小说在线观看| 丁香五月综合久久| 鲁鲁色五月| 99热这里只有精品99| 九九热视频这里只有精品| 色情免费视频播放| 丁香五月婷婷性爱| 天天操中文字幕| 婷婷伊人綜合| 超碰cap| 噼里啪啦完整版中文在线观看| 97啪啪| 99热这里只有精品22| 全国最新疫情| 国产阿姨日皮艹逼内射视频|