XRepoTest
收藏数据链接:
官方服务:
资源简介:
XRepoTest是一个仓库级基准测试,用于评估大型语言模型在5种编程语言中为真实世界函数生成单元测试的能力。
XRepoTest is a repository-level benchmark designed to evaluate the capability of large language models (LLMs) to generate unit tests for real-world functions across five programming languages.
创建时间:
2026-08-24
原始信息汇总
XRepoTest 数据集详情
数据集概述
XRepoTest 是一个仓库级别(repository-level)的基准测试数据集,用于评估大型语言模型(LLM)在5种编程语言中为真实世界函数生成单元测试的能力。该数据集提供了从仓库爬取、提示词构建、LLM响应生成到基于Docker执行验证的端到端流水线,能够对生成的每个测试进行编译、运行和覆盖率测量。
支持的语言与技术栈
| 语言 | 扩展名 | 测试框架 | 变异测试工具 |
|---|---|---|---|
| Go | .go |
go test |
go-mutesting ✅ |
| Rust | .rs |
cargo test |
cargo-mutants ✅ |
| Julia | .jl |
Test |
— |
| PHP | .php |
PHPUnit |
— |
| Ruby | .rb |
RSpec |
mutant ✅ |
注意:变异测试仅对Go、Rust和Ruby三种语言启用(通过
--enable_mutation标志控制)。
评估指标
| 指标 | 含义 |
|---|---|
compiled_rate |
生成的测试能够成功编译的比例 |
invocation_rate |
实际调用目标函数的测试比例 |
test_pass_rate |
在真实代码上运行时的测试通过率 |
line_coverage |
目标函数的宏平均行覆盖率 |
mutation_score |
杀死注入变异体的比例(Go/Rust/Ruby) |
提示词模式
| 模式 | 添加到提示词的上下文 | CLI值 |
|---|---|---|
| 标准模式 | 仅目标函数 | standard |
| LSP上下文 | 通过LSP提取的参数类型和焦点方法 | lsp_context |
| 文件上下文 | 完整的周边源文件 | file_context |
| BM25检索 | BM25检索上下文(ws<窗口>_k<top_k>) |
rag_bm25 |
| 稠密检索 | 稠密/LM检索上下文(ws<窗口>_k<top_k>) |
rag_dense |
数据获取
数据集托管于HuggingFace Hub:solis-soict/xrepotest,可通过以下命令获取:
bash pip install "huggingface_hub[cli]" python scripts/fetch_data.py
数据分为三个分组:
data/base:核心基准数据,启用standard和file_context模式data/lsp:LSP增强数据,启用lsp_context模式data/rag:检索增强数据,启用rag_bm25和rag_dense模式
使用前提条件
- Python ≥ 3.10
- Docker:评估在语言特定的Docker容器中执行,需预先拉取镜像(如
dungxg502/xrepotest-go:latest,以及rust/julia/php/ruby对应镜像)
相关资源
- HuggingFace数据集页面:https://huggingface.co/datasets/solis-soict/xrepotest
- 许可证:MIT
- 该数据集发表于EMNLP 2026主会议
搜集汇总
数据集介绍

构建方式
在软件工程与自然语言处理交叉研究的广阔图景中,单元测试的自动生成已成为衡量大语言模型代码理解与生成能力的重要试金石。XRepoTest数据集的构建遵循严格的端到端流程,首先通过定向爬取公开代码仓库,精准提取跨Go、Rust、Julia、PHP、Ruby五大语言的函数级记录,并为每个函数注入丰富的上下文元数据,包括LSP参数类型、焦点方法及检索增强内容。随后,依托Docker容器化环境,对生成测试执行编译、运行及覆盖率测定,确保每个测试均经受真实代码的实践检验。其构建管线贯通仓库爬取、提示构造、模型响应生成与基于Docker的执行评测,呈现实仓库级、多语言、可复现的基准特性。
特点
该数据集的核心特质在于对现实世界复杂度的忠实还原与多维度的评测体系。它突破单语言或合成基准的局限,以五种语言各自的原生测试框架为执行基础,摒弃模式匹配,全部测试均在语言专属Docker容器内编译运行,度量指标来源于编译器与测试运行器的真实输出。数据集设计了四种可消融的研究维度,涵盖标准、LSP上下文、文件上下文与检索增强提示模式,并针对Go、Rust、Ruby引入变异测试以评估测试质量而不仅限于通过率。此外,迭代修复与智能体模式支持自修复研究,而事后的数据泄漏、领域错误、显著性及重叠相关性分析套件,进一步提升了基准的严谨性与深度。
使用方法
使用者可通过简洁的CLI命令驱动完整评测流程,需预先完成Python≥3.10环境、Docker及HuggingFace数据获取等准备步骤。标准运行命令xrepotest run整合了提示生成、模型响应、预处理与评测环节,支持分阶段细粒度控制,如用xrepotest prompts、responses、preprocess、eval分别执行各步骤,并通过--enable_mutation启用变异测试。针对运行失败的测试,xrepotest repair支持迭代修复,agentic模式则可开展智能体驱动的测试生成。用户可依据研究需求,灵活选用五种提示模式、调整检索窗口与top-k参数,并参照约定的输出路径合同管理每次实验产物,以便系统化比较模型、策略或检索增强上下文下的表现。
背景与挑战
背景概述
XRepoTest是由越南河内科技大学SOICT实验室的研究团队于2026年构建的基准数据集,旨在系统评估大型语言模型在跨语言仓储级单元测试生成任务中的能力。该研究针对现有基准多局限于单一语言或合成示例的局限,覆盖Go、Rust、Julia、PHP和Ruby五种编程语言,通过真实的源代码仓储、Docker容器化执行和变异测试技术,从编译率、调用率、测试通过率、行覆盖率及变异评分等多个维度量化模型生成测试代码的质量。该数据集提供了包括标准、LSP上下文、文件上下文及检索增强在内的多种提示模式,支持自修复和智能体驱动评估,为软件工程与自然语言处理交叉领域提供了统一的评测平台,对推动智能测试生成研究具有重要参考价值。
当前挑战
XRepoTest所解决的领域挑战在于,仓储级测试生成需处理不同语言间的语法和框架差异,同时确保生成测试的真实可执行性,而非仅依赖模式匹配;此外,如何评价测试的质量而非仅仅通过率,以及如何确保数据集中避免信息泄漏和偏差,都是难点。在构建过程中,挑战包括从公开仓储中高效爬取并解析海量函数级记录,为每种语言配置原生测试框架和变异工具,实现统一的Docker执行环境,并设计跨语言的构造流程以维持公平性。这些努力旨在构建一个更接近实际开发场景、具备严格执行验证和深度分析能力的基准,以揭示模型在复杂仓储上下文中的真实表现和局限。
常用场景
经典使用场景
XRepoTest作为面向真实世界多语言仓库级单元测试生成任务的基准测试集,其核心使用场景在于对大型语言模型在跨语言、跨仓库环境下的测试生成能力进行系统性评估。研究者可借助其涵盖Go、Rust、Julia、PHP和Ruby五种编程语言的丰富数据,以及集成的LSP上下文、文件上下文和BM25/稠密检索等多样化提示模式,深入剖析模型在不同上下文条件下的表现差异。该基准提供从提示构建、模型响应生成到Docker容器内实际编译、运行与覆盖率度量的端到端流水线,使得模型生成的测试代码能够在真实代码库中获得严格的执行验证。基于此,XRepoTest常被用于对比不同模型、不同提示策略以及不同检索增强上下文对测试生成质量的影响,为仓库级代码理解与自动化测试研究提供坚实的实验平台。
实际应用
在实际工程场景中,XRepoTest所承载的基准与工具链可直接赋能软件开发生命周期中的测试自动化环节。基于其提供的高质量多语言测试生成模型,开发团队可将其应用于持续集成流程,自动为新增或变更的函数生成初始单元测试,从而先行捕捉潜在回归缺陷并提高代码覆盖率。同时,XRepoTest所支持的迭代修复模式与智能体驱动生成模式,为构建自适应测试维护工具奠定了基础,能够在代码演进过程中自动更新过时测试,减轻开发人员手工编写与维护测试的沉重负担。此外,其RAG检索增强的上下文生成能力,使之能够适配大型企业级代码仓库的特定需求,助力实现更智能的代码质量保障体系,具有广泛的产业应用前景。
衍生相关工作
XRepoTest作为一项基准工作,已经催生了诸多衍生研究议题与相关成果。其一,基于其收集的多语言仓库级数据,研究者可进一步开发针对不同编程语言的专门化测试生成模型,探索语言特性对生成效果的影响。其二,其提供的prompt模式消融实验框架激励了上下文工程领域的研究,催生出更多关于检索增强生成、结构化上下文注入的创新方法,以提升模型在复杂代码理解任务上的表现。其三,面向变异测试与迭代修复的集成机制,推动了自动程序修复与测试质量评估交叉领域的研究,衍生出关于测试充分性、缺陷定位与自适应修复算法等方向的深入探讨。此外,XRepoTest的发布引发了社区对仓库级基准构建方法论的讨论,带动了更多元语言、更广泛场景评估基准的涌现,从而整体促进了代码智能领域评估体系的完善与进步。
以上内容由遇见数据集搜集并总结生成



