遇见数据集

xrepotest

收藏
Hugging Face2026-08-27 更新2026-08-28 收录
官方服务:

资源简介:

XRepoTest是一个多语言仓库级单元测试生成基准数据集,用于评估代码生成模型在真实开源仓库上下文中生成单元测试的能力。该数据集包含从Go、Rust、Julia、PHP、Ruby五种语言的真实开源仓库中提取的函数,每个任务项为一个待测函数,并配备其所在文件的完整源代码、函数结构信息和元数据。数据集分为三个版本:基础版(base)包含标准任务项;LSP增强版(lsp)包含经过语言服务器协议增强的任务项;检索增强版(rag)包含基于BM25或UnixCoder检索的上下文窗口任务项。主要字段包括任务ID、函数名、文件路径、待测函数代码(focal_code)、文件完整内容(file_content)、函数组件及元数据。该数据集适用于单元测试生成、代码补全、仓库级代码理解等任务,并支持通过Docker容器在真实代码库上执行和评分生成的测试。数据集采用MIT许可证发布,但原始源仓库保留各自许可证。

XRepoTest is a multilingual repository-level unit test generation benchmark dataset for evaluating the ability of code generation models to generate unit tests in the context of real open-source repositories. The dataset contains functions extracted from real open-source repositories in five languages: Go, Rust, Julia, PHP, and Ruby. Each task item is a function under test, accompanied by the complete source code of its file, function structure information, and metadata. The dataset is divided into three versions: the base version (base) contains standard task items; the LSP-enhanced version (lsp) contains task items enhanced by the Language Server Protocol; the retrieval-augmented version (rag) contains context window task items retrieved based on BM25 or UnixCoder. Main fields include task ID, function name, file path, focal code (focal_code), full file content (file_content), function components, and metadata. The dataset is suitable for tasks such as unit test generation, code completion, and repository-level code understanding, and supports executing and scoring generated tests on real codebases via Docker containers. The dataset is released under the MIT license, while the original source repositories retain their respective licenses.

创建时间:
2026-08-22
原始信息汇总

XRepoTest 数据集概述

基本信息

  • 名称: XRepoTest
  • 许可协议: MIT
  • 语言: 英语、代码
  • 任务类别: 文本生成、其他
  • 标签: 单元测试生成、仓库级别、代码生成、基准测试

核心定位

XRepoTest 是一个多语言、仓库级别的单元测试生成基准测试数据集(EMNLP 2026 主会论文数据),每项任务是从真实开源仓库中提取的一个函数,要求模型利用周围仓库上下文为该函数生成单元测试,生成的测试将在 Docker 容器内的真实代码库上执行并评分。

数据组织结构

文件夹 内容 对应流水线
data/base 按语言划分的任务项 {lang}_functions.jsonl standardfile_context
data/lsp LSP 增强的任务项 {lang}_functions_enriched.jsonl lsp_context
data/rag 检索增强任务项(ws<window>_ss<step>_k<top_k>,基于 bm25/unixcoder) rag_bm25rag_dense

支持语言

Go、Rust、Julia、PHP、Ruby —— 每种语言对应一个文件夹。

基础记录字段

  • task_idfunction_namefile_path
  • focal_code(被测函数)
  • file_content(所在文件的完整源码)
  • function_component / metadata(解析结构和来源信息)

可复现性说明

原始爬取源代码仓库的 repo_data/ 目录未公开在此数据集中。各语言的 Docker 评估镜像内置了语料库;数据集的构建可通过每条记录元数据中列出的公开源码仓库进行复现。

许可说明

数据集本身以 MIT 许可证发布。各源代码仓库保留其自身许可证,详细信息见每条记录中的来源元数据。

相关资源

  • 论文:https://huggingface.co/papers/2608.25939
  • 代码仓库:https://github.com/solis-team/XRepoTest
搜集汇总
数据集介绍
xrepotest 数据集图片
构建方式
XRepoTest数据集的构建立足于真实开源软件库,通过系统性地抽取各仓库中的函数定义及其所处的文件语境,形成以任务项为核心的数据单元。每个任务项不仅包含目标函数的源代码,还整合了所在文件的完整内容及经过解析的函数组件与元数据,从而提供了丰富的仓库级上下文。为增强数据集的多样性与实用性,构建流程还引入了两种增强变体:基于语言服务器协议(LSP)的语义增强版本,以及通过BM25或UnixCoder检索机制生成的检索增强版本,后者通过调整窗口、步长和候选数量等参数产生多组配置。所有数据均按编程语言分类组织,涵盖Go、Rust、Julia、PHP和Ruby五种语言,且原始仓库的采集与Docker镜像的构建过程保持完全可复现。
使用方法
使用XRepoTest数据集时,研究者可依据目标场景选取不同子集。基础数据(data/base)适用于采用标准提示或引入所在文件作为上下文(file_context)的生成管线;LSP增强数据(data/lsp)适合需要深度理解代码语义与依赖关系的模型;检索增强数据(data/rag)则服务于基于信息检索的生成策略,用户可按需调整窗口大小、步长和top-k等参数。数据集提供了统一的JSONL格式,记录中包含任务ID、函数名、文件路径、焦点代码及文件内容等关键字段,便于直接加载至深度学习框架。评测阶段,要求将生成的测试与仓库环境一同置于Docker镜像中执行,并依据通过率等指标进行打分,从而在标准化、可迁移的条件下完成模型性能的横向比较。
背景与挑战
背景概述
XRepoTest数据集由solis团队于EMNLP 2026提出,聚焦于仓库级别的多语言单元测试生成任务。该数据集从真实开源仓库中提取函数,旨在利用仓库上下文自动生成单元测试,以推动代码生成与软件测试自动化领域的发展。其核心研究问题在于如何有效融合跨文件的语义信息,提升测试生成的准确性与鲁棒性。作为首个覆盖Go、Rust、Julia、PHP、Ruby五种语言的基准,XRepoTest填补了现有数据集在仓库级理解与多语言支持方面的空白,为后续研究提供了标准化的评估平台,具有显著的学术影响力与实用价值。
当前挑战
该数据集所面临的挑战涵盖领域问题与构建过程两个层面。在领域层面,单元测试生成需精准捕获函数预期行为,并处理仓库中复杂的依赖关系与跨文件上下文,现有模型常因上下文缺失或冗余而产生无效测试。在构建层面,从多语言开源仓库中提取函数需保证代码的完整性与可编译性,同时设计高效的Docker评估镜像以支持真实环境下的测试执行;此外,原始仓库数据的版权与合规性亦需谨慎处理,确保数据集的可复现性与法律安全性。
常用场景
经典使用场景
XRepoTest作为多语言仓库级单元测试生成基准,其核心使用场景聚焦于评估和提升代码生成模型在真实世界软件仓库环境下的单元测试编写能力。研究者利用该数据集,以从开源仓库中抽取的真实函数为对象,要求模型基于周围的仓库上下文(包括文件内容、函数结构等)生成对应的单元测试用例。该基准通过Docker容器在真实代码库上执行所生成的测试,实现了对生成测试的有效性、覆盖率及正确性的自动化评估,为仓库级代码理解与测试生成技术提供了标准化的测试平台。
解决学术问题
该数据集解决了现有单元测试生成研究中缺乏真实仓库级、多语言评估基准的问题。此前相关工作多集中于单文件或简化环境,难以反映生成测试在复杂依赖和跨文件上下文中的实际表现。XRepoTest通过提供包含完整文件内容与函数元数据的任务,以及可复现的Docker评估流水线,使得研究者能够客观比较不同模型在跨语言、仓库级测试生成上的性能,推动了代码生成模型从片段级生成向真实场景应用的学术探索,并促进了语义理解、上下文建模和测试充分性等关键问题的研究。
实际应用
在实际应用中,XRepoTest基准可用于指导自动化测试生成工具的开发与优化,帮助软件工程师提升单元测试的编写效率与代码质量。通过该数据集训练的模型能够理解仓库内部结构与依赖关系,自动生成针对特定函数的有效测试,减少人工编写测试的开销,并用于回归测试、缺陷检测和持续集成流程中。此外,该基准的多语言支持(如Go、Rust、Julia等)使其适用于异构技术栈的工业项目,为软件质量保障体系提供智能辅助,具有显著的工程应用价值。
数据集最近研究
最新研究方向
XRepoTest基准的发布标志着代码生成领域向仓储级别单元测试自动化的关键迈进。该数据集涵盖五种编程语言,从真实开源项目中抽取函数并融合多元上下文(文件级、LSP增强、检索增强),旨在评估模型在复杂代码库环境下的测试生成能力。其核心创新在于结合Docker容器内真实执行与评分,为可复现性设定新标准,推动单元测试生成从孤立函数向全仓储理解转变。这一方向与当前AI辅助软件工程中强调代码语义理解与上下文感知的趋势紧密契合,为提升代码可靠性与开发效率提供了坚实评测基石。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务