Невозможно установить имя пакета для classpath в randoop

Здесь структура проекта клонируется из github после успешной компиляции в Ubuntu,

 javaml 
     бункер
       сеть / SF / javaml / ядро ​​/Dataset.class
javaml
     ЦСИ
      сеть / SF / javaml / ядро ​​/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 

Сгенерировано сообщение об ошибке: "Игнорирование интерфейса net.sf.javaml.core.Dataset, указанного с помощью --classlist или --testclass. Нет классов для тестирования".

в то время как другая команда

 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 
без пакета для другого проекта работает отлично. Любая помощь будет оценена.

2 ответа

Решение

Сообщение об ошибке дает вам ответ:

Игнорирование интерфейса net.sf.javaml.core.Dataset, указанного с помощью --classlist или --testclass. Нет классов для тестирования

Вы должны предоставить класс, а не интерфейс, для --testclass аргумент командной строки.

Мимоходом --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 спасибо за ваш добрый ответ.

Другие вопросы по тегам