[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"repo-uber-ios-snapshot-test-case-zh-CN":3,"i18n-uber-ios-snapshot-test-case-zh-CN":260},{"mirrorPool":4,"detail":13,"relatedProjects":119},[5,9],{"key":6,"label":7,"base":8,"type":6},"github","mirror.github","https:\u002F\u002Fgithub.com\u002F",{"key":10,"label":11,"base":12,"type":10},"auto-proxy","mirror.autoProxy","https:\u002F\u002Fgithub.xxlab.tech\u002F",{"owner":14,"repo":15,"repoId":16,"repoUrl":17,"starCount":18,"language":19,"description":20,"languages":21,"screenshots":27,"homepage":28,"pushedAt":29,"ownerAvatar":30,"ownerName":31,"ownerBio":32,"lastSyncTime":33,"lastReleaseTime":34,"tags":35,"license":36,"category":37,"subgroup":38,"releases":39},"uber","ios-snapshot-test-case",114173355,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case",1865,"Objective-C","Snapshot view unit tests for iOS",{"Objective-C":22,"Swift":23,"Shell":24,"Starlark":25,"Ruby":26},87.7,4.9,3.3,2.1,1.9,[],"","2025-12-02","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F538264?v=4","Uber Open Source","Open Source at Uber","2026-10-04T13:16:13.774775+00:00","2021-10-22T03:40:34Z",[],"MIT","development","开发库\u002F框架",[40,52,62,73,83,93,102,110],{"tag":41,"publishAt":34,"semVer":42,"prerelease":45,"assets":46},"8.0.0",[43,44,44],8,0,false,[47],{"fileName":48,"sizeMb":49,"sha256":28,"downloadCount":50,"originUrl":51},"FBSnapshotTestCase.framework.zip",63.84,1112,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F8.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":53,"publishAt":54,"semVer":55,"prerelease":45,"assets":57},"7.0.0","2021-08-24T20:55:38Z",[56,44,44],7,[58],{"fileName":48,"sizeMb":59,"sha256":28,"downloadCount":60,"originUrl":61},63.76,794,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F7.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":63,"publishAt":64,"semVer":65,"prerelease":45,"assets":68},"6.2.0","2019-10-11T23:52:38Z",[66,67,44],6,2,[69],{"fileName":48,"sizeMb":70,"sha256":28,"downloadCount":71,"originUrl":72},67.53,43071,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.2.0\u002FFBSnapshotTestCase.framework.zip",{"tag":74,"publishAt":75,"semVer":76,"prerelease":45,"assets":78},"6.1.0","2019-07-01T17:29:00Z",[66,77,44],1,[79],{"fileName":48,"sizeMb":80,"sha256":28,"downloadCount":81,"originUrl":82},68.2,4814,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.1.0\u002FFBSnapshotTestCase.framework.zip",{"tag":84,"publishAt":85,"semVer":86,"prerelease":45,"assets":88},"6.0.3","2019-04-01T18:58:43Z",[66,44,87],3,[89],{"fileName":48,"sizeMb":90,"sha256":28,"downloadCount":91,"originUrl":92},68.19,14593,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.3\u002FFBSnapshotTestCase.framework.zip",{"tag":94,"publishAt":95,"semVer":96,"prerelease":45,"assets":97},"6.0.2","2019-03-27T00:27:59Z",[66,44,67],[98],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":100,"originUrl":101},68.11,571,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.2\u002FFBSnapshotTestCase.framework.zip",{"tag":103,"publishAt":104,"semVer":105,"prerelease":45,"assets":106},"6.0.0","2019-01-28T19:14:52Z",[66,44,44],[107],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":108,"originUrl":109},1741,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":111,"publishAt":112,"semVer":113,"prerelease":45,"assets":115},"5.0.2","2019-01-15T00:59:09Z",[114,44,67],5,[116],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":117,"originUrl":118},5031,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F5.0.2\u002FFBSnapshotTestCase.framework.zip",[120,155,178,206,224,244],{"owner":121,"repo":122,"repoId":123,"category":37,"subgroup":38,"language":124,"tags":125,"starCount":145,"ownerUid":146,"latestTag":147,"platforms":148,"lastReleaseTime":152,"downloadCount":153,"description":154},"unslothai","unsloth",725205304,"Python",[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,122],"agent","ai","chatgpt","deepseek","fine-tuning","gemma","image-generation","llama","llm","llms","openai","python","qwen","reinforcement-learning","self-hosted","stable-diffusion","text-to-speech","tts","ui",79329,150920049,"v0.1.917-beta",[149,150,151],"windows","mac","linux","2026-11-11T16:00:56Z",1739,"一个用于加速大型语言模型（LLM）微调的开源库，支持大幅降低显存占用并提升训练速度。",{"owner":156,"repo":157,"repoId":158,"category":37,"subgroup":38,"language":124,"tags":159,"starCount":171,"ownerUid":172,"latestTag":173,"platforms":174,"lastReleaseTime":175,"downloadCount":176,"description":177},"openbq-org","OpenBB",323048702,[127,160,161,162,163,164,165,166,167,168,137,169,170],"crypto","derivatives","economics","equity","finance","fixed-income","machine-learning","openbb","options","quantitative-finance","stocks",74466,328144346,"ODP",[149,150],"2026-09-30T01:47:43Z",1099,"OpenBB 是面向分析师、量化研究员和 AI Agent 的开放金融数据平台，以 Python 库与 REST API 形式聚合股票、期权、加密货币、宏观经济等多源数据，一次接入多处消费。",{"owner":179,"repo":180,"repoId":181,"category":37,"subgroup":38,"language":124,"tags":182,"starCount":198,"ownerUid":199,"latestTag":200,"platforms":201,"lastReleaseTime":203,"downloadCount":204,"description":205},"pathwaycom","pathway",571186647,[183,184,185,186,187,188,189,190,191,192,180,137,193,194,195,196,197],"batch-processing","data-analytics","data-pipelines","data-processing","dataflow","etl","etl-framework","iot-analytics","kafka","machine-learning-algorithms","real-time","rust","stream-processing","streaming","time-series-analysis",62092,25750857,"v0.32.1",[202],"other","2026-08-01T09:17:35Z",359,"Pathway 是一个 Python ETL 框架，统一处理批数据与流数据，适用于流处理、实时分析、LLM 管道与 RAG，底层由基于 Differential Dataflow 的 Rust 引擎驱动。",{"owner":207,"repo":208,"repoId":209,"category":37,"subgroup":38,"language":124,"tags":210,"starCount":217,"ownerUid":218,"latestTag":219,"platforms":220,"lastReleaseTime":221,"downloadCount":222,"description":223},"psf","requests",1362490,[211,212,213,214,215,137,216,208],"client","cookies","forhumans","http","humans","python-requests",54522,50630501,"v2.34.2",[202],"2026-05-14T19:27:15Z",1182,"Requests 是 Python 最流行的 HTTP 客户端库，用极简 API 发送 HTTP\u002F1.1 请求，自动处理查询串、表单编码、Cookie、认证与压缩解码。",{"owner":225,"repo":226,"repoId":227,"category":37,"subgroup":38,"language":124,"tags":228,"starCount":237,"ownerUid":238,"latestTag":239,"platforms":240,"lastReleaseTime":241,"downloadCount":242,"description":243},"run-llama","llama_index",560704231,[229,230,231,130,232,233,134,234,235,236],"agents","application","data","framework","llamaindex","multi-agents","rag","vector-database",52579,130722866,"v0.14.25",[202],"2026-09-21T16:22:27Z",35,"LlamaIndex 是一个面向大语言模型应用的开源数据框架（Python），提供数据连接器、索引、查询引擎与 Agent 编排，把私有数据接入 LLM 构建 RAG 与智能体应用。",{"owner":245,"repo":246,"repoId":247,"category":37,"subgroup":38,"language":124,"tags":248,"starCount":253,"ownerUid":254,"latestTag":255,"platforms":256,"lastReleaseTime":257,"downloadCount":258,"description":259},"pandas-dev","pandas",858127,[249,250,251,252,246,137],"alignment","data-analysis","data-science","flexible",50327,21206976,"v3.1.1",[202],"2026-11-04T15:46:25Z",10,"pandas 是 Python 最流行的数据分析与处理库，提供类似 R data.frame 的带标签数据结构 Series 与 DataFrame，覆盖清洗、对齐、分组聚合、时间序列等日常数据工作全流程。",{"description":261,"readmeHtml":262},"一款用于iOS的视图单元测试框架，通过对比视图的屏幕截图与参考图来验证UI的正确性。","\u003Ch2 id=\"项目概述\">项目概述\u003C\u002Fh2>\u003Cp>\u003Ccode>iOSSnapshotTestCase\u003C\u002Fcode>（原\u003Ccode>FBSnapshotTestCase\u003C\u002Fcode>）是一个用于iOS的视图单元测试框架。它能够对\u003Ccode>UIView\u003C\u002Fcode>或\u003Ccode>CALayer\u003C\u002Fcode>进行截图，并与代码库中存储的参考图像进行比对，若两者不一致则测试失败。这解决了UI代码难以进行逻辑测试的痛点。\u003C\u002Fp>\n\u003Ch2 id=\"主要功能\">主要功能\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>快照测试\u003C\u002Fstrong>：自动捕获并对比视图的屏幕截图。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>清晰的失败反馈\u003C\u002Fstrong>：当测试失败时，会提供图像差异，直观显示变化。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>易于集成\u003C\u002Fstrong>：支持CocoaPods、Carthage和Swift Package Manager。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>自动化命名\u003C\u002Fstrong>：根据测试类和选择器自动命名参考图像。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"适用人群\">适用人群\u003C\u002Fh2>\u003Cul>\n\u003Cli>iOS开发者\u003C\u002Fli>\n\u003Cli>需要确保UI组件在各种状态下显示正确的团队\u003C\u002Fli>\n\u003Cli>希望将UI测试自动化的质量保证工程师\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"快速上手\">快速上手\u003C\u002Fh2>\u003Col>\n\u003Cli>通过CocoaPods、Carthage或Swift Package Manager将框架添加到项目中。\u003C\u002Fli>\n\u003Cli>在测试Scheme中设置\u003Ccode>FB_REFERENCE_IMAGE_DIR\u003C\u002Fcode>环境变量，指向存储参考图像的目录。\u003C\u002Fli>\n\u003Cli>创建一个继承自\u003Ccode>FBSnapshotTestCase\u003C\u002Fcode>的测试类，并在测试方法中调用\u003Ccode>FBSnapshotVerifyView\u003C\u002Fcode>。\u003C\u002Fli>\n\u003Cli>首次运行测试时，在\u003Ccode>setUp\u003C\u002Fcode>方法中开启\u003Ccode>self.recordMode = YES;\u003C\u002Fcode>来生成参考图像。\u003C\u002Fli>\n\u003Cli>关闭记录模式，再次运行测试进行验证。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"核心优势\">核心优势\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>直观验证\u003C\u002Fstrong>：通过图像差异直观展示UI的变化。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>减少断言\u003C\u002Fstrong>：用视觉对比代替繁琐的矩形断言。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>社区支持\u003C\u002Fstrong>：源自Uber和Facebook，有良好的社区基础。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"系统要求\">系统要求\u003C\u002Fh2>\u003Cul>\n\u003Cli>操作系统：iOS、macOS（用于测试）\u003C\u002Fli>\n\u003C\u002Ful>\n",1794593838371]