使用 mvn test
运行hadoop单元测试时,出现以下报错
[exec] ok 1 hadoop_add_classpath (simple not exist)
[exec] ok 2 hadoop_add_classpath (simple wildcard not exist)
[exec] ok 3 hadoop_add_classpath (simple exist)
[exec] ok 4 hadoop_add_classpath (simple wildcard exist)
[exec] not ok 5 hadoop_add_classpath (simple dupecheck)
[exec] # (in test file hadoop_add_classpath.bats, line 42)
[exec] # `[ "${CLAsspATH}" = "${TMP}/*" ]' Failed
[exec] # bindir: /home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/src/test/scripts
[exec] # DEBUG: Append CLAsspATH: /home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/test-dir/bats.239521.1805/*
[exec] # DEBUG: Dupe CLAsspATH: /home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/test-dir/bats.239521.1805/*
[exec] # >.:/usr/lib/jvm/java-7-sun/lib:/usr/lib/jvm/java-7-sun/jre/lib:/usr/lib/jvm/java-7-sun/lib/tools.jar:/home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/test-dir/bats.239521.1805/*<
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:09 min
[INFO] Finished at: 2021-12-09T14:22:43+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (common-test-bats-driver) on project hadoop-common: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" dir="src/test/scripts" executable="bash">... @ 4:69 in /home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (common-test-bats-driver) on project hadoop-common: An Ant BuildException has occured: exec returned: 1
around Ant part ...<exec failonerror="true" dir="src/test/scripts" executable="bash">... @ 4:69 in /home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
找到报错对应的脚本
hadoop-common-project/hadoop-common/src/test/scripts/hadoop_add_classpath.bats
...
@test "hadoop_add_classpath (simple dupecheck)" {
hadoop_add_classpath "${TMP}/*"
hadoop_add_classpath "${TMP}/*"
echo ">${CLAsspATH}<"
[ "${CLAsspATH}" = "${TMP}/*" ]
}
...
这个脚本是用来测试hadoop_add_classpath
命令的,这里的逻辑是添加${TMP}/*
到CLAsspATH,然后判断CLAsspATH是否等于${TMP}/*
echo $CLAsspATH
.:/usr/lib/jvm/java-7-sun/lib:/usr/lib/jvm/java-7-sun/jre/lib:/usr/lib/jvm/java-7-sun/lib/tools.jar
导致
${TMP}/*=/home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/test-dir/bats.239521.1805/*
而
${CLAsspATH}=.:/usr/lib/jvm/java-7-sun/lib:/usr/lib/jvm/java-7-sun/jre/lib:/usr/lib/jvm/java-7-sun/lib/tools.jar:/home/hadoop/tmp/hadoop3/hadoop-common-project/hadoop-common/target/test-dir/bats.239521.1805/*
两者不相等所以报错
解决
先将CLAsspATH设置为空
export CLAsspATH=
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。