Моя цель - создать базовые c модульные тесты для большого количества унаследованного кода, который мы переносим на новую платформу. (Я знаю, что юнит-тесты бесполезны, но иногда это бывает). Мы блокируем только процент покрытия, поэтому лучше использовать go с базовыми c тестами в тех методах, которые нам нужны, поэтому использование автоматически сгенерированных тестов будет наиболее эффективной стратегией.
Я нашел RAND OOP https://randoop.github.io/randoop/ и начните пытаться заставить его работать. Однако я обнаружил проблему, которая частично связана с моим почти нулевым знанием java (я сделал нечто подобное в. net всего несколькими щелчками мыши и менее чем за 4 часа).
I Я следую официальному руководству здесь https://randoop.github.io/randoop/manual/index.html#getting_randoop и видео этого парня, который просто заставляет его работать https://www.youtube.com/watch?v=nPdb-72-EJY.
The Problem
Проще говоря, проблема заключается в следующей ошибке, когда я запускаю эту команду
java -classpath 'C:\randoop-4.2.1\bin;C:\randoop-4.2.1\randoop-all-4.2.1.jar' randoop.main.Main gentests --testclass=ClassName
> Throwable thrown while handling command:
> java.lang.IllegalStateException: Cannot find the Java compiler. Check
> that classpath includes tools.jar java.lang.IllegalStateException:
> Cannot find the Java compiler. Check that classpath includes tools.jar
> at randoop.compile.SequenceCompiler.<init>(SequenceCompiler.java:64)
> at randoop.compile.SequenceCompiler.<init>(SequenceCompiler.java:48)
> at randoop.condition.SpecificationCollection.<init>(SpecificationCollection.java:82)
> at randoop.condition.SpecificationCollection.create(SpecificationCollection.java:102)
> at randoop.main.GenTests.handle(GenTests.java:279)
> at randoop.main.Main.nonStaticMain(Main.java:66)
> at randoop.main.Main.main(Main.java:30)
>
> Randoop failed. No sequences generated.
что это выше?
Я запускаю команду с консоли, расположенной в папке bin в rand oop " папка установки.
C: \ rand oop -4.2.1 \ bin - это папка, в которую я распаковал файл Rand oop. Какая-то странная вещь заключается в том, что ни одна из загрузок версии Rand oop не содержит папку bin, поэтому я создал ее произвольно. Я не знаю, правильно это или неправильно, но я только что сделал это.
В начале видео запускает следующую команду, которая действительно является базовой c, и она работала нормально в моей системе.
java -classpath .\randoop-4.2.1\randoop-all-4.2.1.jar randoop.main.Main help gentests
Есть также текстовый файл с именем myclasslist, я не понимаю, почему эти парни никогда не говорят. У меня его нет.
У меня установлено Java 8 в c:\program files\jdk1.8.0_231
, а переменные Paths и environment установлены следующим образом.
EDIT
В видео у парня есть файл. java в папке rand oop root. У меня нет, так как у меня есть реальный проект в Intellij. я просто нашел файл classs и скопировал его в папку bin.