Java 如何在daikon中运行程序的junit测试?

Java 如何在daikon中运行程序的junit测试?,java,junit,Java,Junit,当我从命令行键入java daikon.DynComp org.junit.runner.JUnitCore或java daikon.Chicory org.junit.runner.JUnitCore时,我总是得到以下结果: JUnit版本4.12 Exception in thread "main" java.lang.AssertionError: Too many parameters for an annotation method at sun.reflect.annotat

当我从命令行键入
java daikon.DynComp org.junit.runner.JUnitCore
java daikon.Chicory org.junit.runner.JUnitCore
时,我总是得到以下结果:

JUnit版本4.12

Exception in thread "main" java.lang.AssertionError: Too many parameters for an annotation method
    at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:66)
    at com.sun.proxy.$Proxy0.annotationType(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:122)
    at sun.reflect.annotation.AnnotationParser.parseSelectAnnotations(AnnotationParser.java:101)
    at sun.reflect.annotation.AnnotationType.<init>(AnnotationType.java:145)
    at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:85)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:266)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
    at java.lang.Class.createAnnotationData(Class.java:3521)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.getAnnotation(Class.java:3415)
    at java.lang.reflect.AnnotatedElement.isAnnotationPresent(AnnotatedElement.java:258)
    at java.lang.Class.isAnnotationPresent(Class.java:3425)
    at org.junit.runner.notification.RunNotifier.wrapIfNotThreadSafe(RunNotifier.java:50)
    at org.junit.runner.notification.RunNotifier.addFirstListener(RunNotifier.java:212)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:134)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
    at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
    at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
线程“main”java.lang.AssertionError中的异常:注释方法的参数太多 位于sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:66) 位于com.sun.proxy.$Proxy0.annotationType(未知源) 位于sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:122) 位于sun.reflect.annotation.AnnotationParser.parseSelectAnnotations(AnnotationParser.java:101) 位于sun.reflect.annotation.AnnotationType。(AnnotationType.java:145) 位于sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:85) 位于sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:266) 位于sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120) 位于sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72) 位于java.lang.Class.createAnnotationData(Class.java:3521) 位于java.lang.Class.annotationData(Class.java:3510) 位于java.lang.Class.getAnnotation(Class.java:3415) 位于java.lang.reflect.AnnotationDelement.isAnnotationPresent(annotationDelement.java:258) 位于java.lang.Class.isAnnotationPresent(Class.java:3425) 位于org.junit.runner.notification.RunNotifier.wrapIfNotThreadSafe(RunNotifier.java:50) 位于org.junit.runner.notification.RunNotifier.addFirstListener(RunNotifier.java:212) 位于org.junit.runner.JUnitCore.run(JUnitCore.java:134) 位于org.junit.runner.JUnitCore.run(JUnitCore.java:115) 位于org.junit.runner.JUnitCore.runMain(JUnitCore.java:77) 位于org.junit.runner.JUnitCore.main(JUnitCore.java:36)
此外,当我尝试在daikon中运行其他程序并将junit作为代码的一部分时,同样的错误总是会发生。我该怎么办?

这是一个已经过的测试用例。

请给出一个具体的、可复制的测试用例。显示完整的命令行(包括类路径)并提供重现问题所需的所有文件。我所拥有的只是目录中的junit-4.12.jar文件,以及完全安装的daikon 5.6.4(并将daikon添加到类路径)。我的完整命令行是“java-cp.:$CLASSPATH daikon.DynComp org.junit.runner.JUnitCore”。
在您的路径上,不会拾取该目录中的
junit-4.12.jar
文件。您是否犯了错误,或者
不是必需的?另外,请给出准确的类路径。@mernst对不起,我的完整命令实际上是“java-cp:$classpath:junit-4.12.jar daikon.DynComp org.junit.runner.JUnitCore”,junit-4.12.jar在当前目录中。我的完整$CLASSPATH是“/home/lvyiwei1/daikon-5.6.4/daikon.jar:/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/tools.jar”,当我尝试这个方法时,我得到了一个错误“在类路径上找不到dcomp_premain.jar,并且$DAIKONDIR没有设置。”因此,您需要设置DAIKONDIR或将另一个文件放在当前目录中。(当我这么做的时候,我终于可以重现你的问题了。)然而,还有一个更重要的问题:基本命令(没有Daikon)不起作用。我试图运行
java-cp.:$CLASSPATH:junit-4.12.jar org.junit.runner.JUnitCore
,得到
java.lang.NoClassDefFoundError:org/hamcrest/selfdescription
。在您尝试添加Daikon之前,需要使用base命令。请修复CLASSPATH或
-cp
参数。