无法在 randoop 中设置类路径的包名称

Unable to set the package name for classpath in randoop

这里是在 Ubuntu 编译成功后从 github 克隆的项目结构,

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

当给出以下命令时:

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
没有其他项目的包,工作正常。 如有任何帮助,我们将不胜感激。

报错信息给你答案:

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

您应该为 --testclass 命令行参数提供 class,而不是接口。

通过将 --testclass=net.sf.javaml.core.Dataset 传递给 Randoop,表示您只希望 Randoop 创建类型为 net.sf.javaml.core.Dataset 的对象。然而,由于那是一个接口,它不能被实例化,Randoop 不能创建任何对象,也不能创建任何测试。

以下命令对我有用:

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 感谢您的回复。