Defects4J 安装与使用(新手向 2023.12.3 可用)

1. 下载

Github

2. 安装

2.1 环境需求

  • Java 1.8
  • Git >= 1.9
  • SVN >= 1.8
  • Perl >= 5.0.12

Java 和 Git 不赘述(注意 JDK 版本)。

sudo apt-get install subversion
sudo apt-get install cpanminus

其中,Perl 模块需要(由 D4J 初始化程序负责安装):

  • DBI >= 1.63
  • DBD::CSV >= 0.48
  • URI >= 1.72
  • JSON >= 2.97
  • JSON::Parse >= 0.55
  • List::Util >= 1.33

2.2 安装步骤

# 1.Clone Defects4J:
git clone https://github.com/rjust/defects4j
# 2.Initialize Defects4J
cd defects4j
cpanm --installdeps .
./init.sh
# 3.Add Defects4J's executables to PATH:
export PATH=$PATH:"path2defects4j"/framework/bin
# 4.Check installation:
defects4j info -p Lang

第二步过程可能会出现依赖安装失败的情况:

Installing the dependencies failed: Module 'DBI' is not installed, Module 'DBD::CSV' is not installed, Module 'JSON::Parse' is not installed

解决方案:到 CPAN 下载对应模块,解压并安装(需要编译环境)。本人安装的过程中,DBD::CSV 测试过程有两个 subtest 失败,目前未发现影响。

sudo apt install build-essential
perl Makefile.PL
make
make test
sudo make install

3. 使用

执行 Checkout 指令:

defects4j checkout -p Lang -v 1b -w "d4j-workDirectory"/lang_1_buggy

Checking out 687b2e62 to /root/lang_1_buggy................................ OK
Init local repository...................................................... OK
Tag post-fix revision...................................................... OK
Excluding broken/flaky tests............................................... OK
Excluding broken/flaky tests............................................... OK
Excluding broken/flaky tests............................................... OK
Initialize fixed program version........................................... OK
Apply patch................................................................ OK
Initialize buggy program version........................................... OK
Diff 687b2e62:2c454a4c..................................................... OK
Apply patch................................................................ OK
Tag pre-fix revision....................................................... OK
Check out program version: Lang-1b......................................... OK

结果如图所示:

### Defects4J 使用指南安装教程 #### 1. 环境准备 为了成功运行 Defects4J,需确保环境满足以下依赖条件。具体来说,Perl 模块需要通过 CPANM 工具安装特定版本的模块,这些模块包括但不限于 `DBI >= 1.63`, `DBD::CSV >= 0.48`, `URI >= 1.72`, `JSON >= 2.97`, `JSON::Parse >= 0.55` 和 `List::Util >= 1.33`[^1]。 #### 2. 安装步骤详解 以下是完整的安装流程: - **克隆仓库** 首先从官方 GitHub 地址获取最新版 Defects4J 源码: ```bash git clone https://github.com/rjust/defects4j.git ``` - **初始化工具链** 进入克隆后的目录并执行初始化命令,此过程会自动完成 Perl 模块及其他必要组件的安装: ```bash cd defects4j cpanm --installdeps . ./init.sh ``` 上述操作完成后,Defects4J 将准备好供进一步使用。 - **设置环境变量** 添加 Defects4J 的可执行文件路径到系统的 `$PATH` 中以便全局调用: ```bash export PATH=$PATH:/path/to/defects4j/framework/bin ``` 替换 `/path/to/defects4j` 为实际解压或克隆的位置。 - **验证安装** 执行如下命令测试是否正常工作: ```bash defects4j info -p Lang ``` 如果一切顺利,则应返回有关项目的元数据信息。 #### 3. 基础命令介绍 Defects4J 提供了一系列强大的 CLI 命令来管理缺陷及其对应的修复补丁。例如,可以利用 `checkout` 子命令下载指定版本的目标项目实例至本地磁盘: ```bash defects4j checkout -p Lang -v 1b -w /tmp/lang_1_buggy ``` 上述例子表示检出编号为 1 的有错误状态 (buggy version) 的 Apache Commons Lang 库副本,并将其存储于临时目录下[^3]。 #### 4. 关键配置项说明 值得注意的是,在某些高级场景下可能还需要额外定义几个重要环境变量,比如 `D4J_HOME`, `GZOLTAR_CLI_JAR` 和 `GZOLTAR_AGENT_JAR`,不过它们通常不会被默认脚本所处理[^2]。 --- ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值