Кажется, вы хотите интегрировать тестирование.
Во многих случаях приложение создается системой непрерывной интеграции (CI), такой как Hudson, Travis или sth. Этот CI компилирует и запускает модульные тесты после каждой фиксации на исходный код.
После успешной компиляции запускаются проекты интеграции-тестирования.
Интеграционные тесты находятся в отдельном проекте источника maven. Вы бы создали интеграционные тесты-классы, такие как обычные модульные тесты в src/test/java. Конечно, вы не тестируете отдельный класс по отдельности - это модульное тестирование - вы настраиваете свою систему для тестирования интеграции (проводьте правильные компоненты) и выполняете необходимые тесты «тест дыма».
Таким образом, в вашем случае вы можете создать еще один проект для тестирования интеграции и выполнить его после сборки вашего приложения. Вы можете создать родительский помпа maven и использовать подмодули, чтобы избежать ручной интеграции-тестирования-сборки.
Тест-классы должны быть java и расположены в src/test/java, они выглядят как обычные модульные тесты и управляются maven.
Конечно, вы можете запустить не-java-программу в этих тестах и утвердить результат.
Консольное приложение имеет « основной » метод, поэтому я бы назвал основной метод в тесте. В противном случае вам нужно запустить команду оболочки или что-то в этом роде. (через java.lang.Runtime)
В тестировании консольных приложений нет специальности. Если вы не хотите протестировать пользовательский интерфейс - автоматическое тестирование пользовательских интерфейсов непросто и сложнее, пожалуйста, уточните, является ли это вашим фокусом.