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

结果如图所示:

<think>好的,用户想安装Defects4J,我需要先回忆相关的安装步骤。Defects4J是一个用于软件缺陷研究的数据库,安装过程需要一些依赖项。首先,我应该检查官方文档,但用户可能没有直接访问,所以需要根据经验整理步骤。 第一步通常是安装系统依赖。比如在Ubuntu上可能需要Git、Perl、Java等。记得用户可能使用不同的操作系统,但提供的引用中有提到CentOS和Ubuntu,可能需要分别说明。不过用户问的是Defects4J,可能更倾向于Linux环境。 然后,用户需要克隆Defects4J的仓库。正确的仓库地址是github.com/rjust/defects4j,可能需要使用git clone命令。接下来是运行初始化脚本,比如init.sh,这个脚本可能会设置环境变量和下载所需的数据。 安装过程中可能会遇到权限问题,需要提醒用户可能需要chmod +x来添加执行权限。另外,环境变量的配置也很重要,比如将Defects4J的路径添加到PATH中,或者设置DEFECTS4J_HOME变量,这样用户可以在任何地方使用defects4j命令。 测试安装是否成功通常是通过运行defects4j info -p Lang这样的命令,检查是否能获取项目信息。如果出现问题,可能需要检查依赖项是否全部安装,或者查看错误日志。 用户提供的引用中有提到Apache Atlas的安装需要分别启动HBASE、SOLR等,虽然不相关,但可能安装过程中需要注意依赖服务的启动顺序。不过Defects4J可能不需要这些,但如果有类似的问题,比如依赖服务未启动,可能需要提示用户。 另外,引用1提到preseed文件用于自动化安装Ubuntu,可能和Defects4J无关,但可以提醒用户如果有自动化需求,可能需要编写脚本处理安装步骤。引用3的代码片段关于窗口缓冲区的设置,可能安装无关,暂时忽略。 用户可能需要常见问题解答,比如安装失败如何处理,环境变量配置错误等。例如,如果初始化失败,可能是网络问题导致无法下载数据集,或者权限不足。需要建议用户检查网络连接,或者使用代理。 最后,生成相关问题时要围绕Defects4J的使用和高级配置,比如如何添加新项目,如何运行测试用例,如何集成到CI/CD等。确保问题对用户进一步学习有帮助。</think>### Defects4J安装步骤 Defects4J是一个用于软件缺陷研究的基准数据集,安装步骤如下: #### 1. **安装系统依赖** - **Ubuntu/Debian**: ```bash sudo apt-get update && sudo apt-get install -y git perl openjdk-8-jdk ant ``` - **CentOS**: ```bash sudo yum install -y git perl java-1.8.0-openjdk ant ``` #### 2. **克隆仓库** ```bash git clone https://github.com/rjust/defects4j.git cd defects4j ``` #### 3. **初始化Defects4J** - 运行初始化脚本: ```bash ./init.sh ``` - 脚本会下载所需数据集(约1.5GB)并配置环境变量。 #### 4. **配置环境变量** 将以下内容添加到`~/.bashrc`或`~/.zshrc`: ```bash export PATH=$PATH:/path/to/defects4j/framework/bin export DEFECTS4J_HOME=/path/to/defects4j ``` 然后执行: ```bash source ~/.bashrc ``` #### 5. **验证安装** ```bash defects4j info -p Lang ``` 若输出`Chart`项目的缺陷信息,则安装成功[^1]。 #### 6. **常见问题** - **数据集下载失败**:检查网络或手动下载`defects4j-repos.zip`并解压到`defects4j`目录。 - **Java版本冲突**:确保使用Java 8,可通过`update-alternatives --config java`切换版本。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值