1. 下载
2. 安装
可以在 Releases 页面直接下载 1.7.2 稳定版本的 Jar 包,或者源码自行打包:
git clone https://github.com/GZoltar/gzoltar
cd gzoltar
mvn package
3. 命令行使用
3.1 官方示例
在 com.gzoltar.cli.examples 中执行:
./run.sh
--instrumentation <online|offline>
[--help]
3.2 D4J示例(分步)
查看官方示例中的 run.sh,结构如下:
- Envs & Args:
检查 GZOLTAR_CLI_JAR 和 GZOLTAR_AGENT_RT_JAR,准备运行时依赖 JUNIT_JAR 和 HAMCREST_JAR。 - Main:
四个步骤:编译 Compile;收集测试以供运行 listTestMethods;收集覆盖信息 runTestMethods;创建错误报告 faultLocalizationReport。
以 D4J 的 Lang-1b 为对象,对其修改:
- 首先,检查依赖部分的 jar 包路径是否正确。
- 编译部分交给
defects4j compile命令完成(⭐)。
也可以自己编译(如下,但不推荐❌):
# 将 .java 文件输入到 txt 然后 javac 编译
find /home/ubuntu/lang_1_buggy/src/main/java -name *.java >> src.txt
find /home/ubuntu/lang_1_buggy/src/test/java -name *.java >> test.txt
SRC_DIR=/home/ubuntu/d4j-gzoltar/target/classes
TEST_DIR=/home/ubuntu/d4j-gzoltar/target/tests
# 使用 ISO 编码是因为其中该项目存在 UTF-8 不可映射的字符
javac @src.txt -encoding ISO-8859-1 -d ${SRC_DIR}
# 补充缺少的依赖包
javac -cp ${JUNIT_JAR}:${HAMCREST_JAR}:${COMMONS_IO}:${EASY_MOCK}:${SRC_DIR} @test.txt -encoding ISO-8859-1 -d ${TEST_DIR}
- 列出测试:
这段是官方的参考:
java -cp <project_classpath:gzoltarcli.jar> com.gzoltar.cli.Main listTestMethods \
<list of folders that contain test classes> \
--outputFile <path> \
--includes <test classes/cases to consider, e.g., org.TestFoo#* to include all test cases of test class TestFoo>
对于本例 ,includes 来自 /home/ubuntu/defects4j-2.0.0/framework/projects/<pid>/relevant_tests/<bid>,借助命令获取:
cat "/home/ubuntu/defects4j-2.0.0/framework/projects/<pid>/relevant_tests/<bid>" | sed 's/$/#*/' | sed ':a;N;$!ba;s/\n/:/g'
java -cp ${JUNIT_JAR}:${HAMCREST_JAR}:${GZOLTAR_CLI_JAR}:${SRC_DIR}:${TEST_DIR} \
com.gzoltar.cli.Main listTestMethods \
/home/ubuntu/d4j-gzoltar/target \
--outputFile /home/ubuntu/d4j-gzoltar/tmp/tests.txt \
--includes ${REL

本文详细介绍GZoltar的下载、安装及命令行使用方法,包括官方示例与Defects4J示例,并提供了一个针对单项目的脚本化执行流程。
最低0.47元/天 解锁文章





