2017-07-24 72 views
-1

这里编译成功在Ubuntu后,从GitHub克隆了一个项目结构类路径设置的包名,无法在randoop

javaml 
    bin 
     net/sf/javaml/core/Dataset.class 
javaml 
    src 
     net/sf/javaml/core/Dataset.java

当下面的命令WA给出:

java -ea -classpath /home/shahid/git/javaml/bin:/home/shahid/a_f_w/randoop-3.1.5/randoop-all-3.1.5.jar randoop.main.Main gentests --testclass=net.sf.javaml.core.Dataset --literals-file=CLASSES

它产生的错误:“忽略通过--classlist或--testclass指定的接口net.sf.javaml.core.Dataset。 没有要测试的类 ”。

而另一个命令

java -ea -classpath /home/shahid/git/java-ml/bin:/home/shahid/a_f_w/randoop-3.1.5/randoop-all-3.1.5.jar randoop.main.Main gentests --testclass=DataSet --literals-file=CLASSES
没有其他项目包完美工作。 任何帮助将被称赞。

+0

另一个项目也从github下载 – Shahid

回答

1

错误信息给你答案:

Ignoring interface net.sf.javaml.core.Dataset specified via --classlist or --testclass. No classes to test

你应该提供一个类,不是接口,为--testclass命令行参数。

通过将--testclass=net.sf.javaml.core.Dataset传递给Randoop,您表示您只希望Randoop创建net.sf.javaml.core.Dataset类型的对象。但是,因为这是一个接口,所以它不能被实例化,并且Randoop不能创建任何对象,也不能进行任何测试。

+0

当命令:“java -ea -classpath〜/ randoop.jar:〜/ lib /javaml-0.1.7.jar randoop.main.Main gentests --testclass = Dataset --literals-file = CLASSES --ignore-flaky-tests = true --only-test-public-members = true“,产生的错误是”policy = [email protected]“ Throwable在处理命令时抛出:java.lang.Error:没有找到类型名为“Dataset”的类java.lang.Error:没有找到类型名为“Dataset”的randoop.main类“ – Shahid

+1

此错误消息说同样的事情:数据集不是类路径中的完全限定路径(“policy = ...”输出不是错误消息的一部分。) – mernst

+0

在链接中给出的类似问题引发了randoop v 2.1.0 “https://github.co m/rjust/defects4j/issues/25“,并使用randoop v 2.1.2解决。我已经尝试过所有版本,但没有解决。甚至用双引号给班级路径。 – Shahid

0

下面的命令为我工作:

java -ea -classpath ~/javaml/bin/:~/Randoop/randoop-all-3.1.4.jar randoop.main.Main gentests --testclass=net.sf.javaml.core.Complex --literals-file=CLASSES 

@mernst感谢您的一种回应。