Невозможно установить имя пакета для 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 спасибо за ваш добрый ответ.