При написании тестов я хотел бы запускать их по отдельности. Howver, так как я переключился с Java Eclipse по умолчанию на Maven, это уже невозможно. Замечания:Запуск одного теста JUnit4 в Eclipse с Maven
До сегодняшнего дня я не мог открыть исходный файл тест JUnit и выберите
Run as | JUnit test
на панели инструментов. Прежде чем я перешел на Maven, Eclipse построил модульный тест, когда это необходимо.Начиная с Maven, я получаю
ClassNotFoundException
в случае, если я раньше не скомпилировал тесты. Я могу обойти это, если я выберу POM и сделаюRun as | Maven test
. Это скомпилирует тесты и проведет все тесты.Если я снова выберу модульный тест и выберем
Run as | JUnit test
с панели инструментов, он выполнит тест.
Поскольку это слишком неудобно, мне бы хотелось вернуться к «старому» поведению, и я думаю, что это должно быть проблемой конфигурации.
У меня есть
- чтения Running a single test in Eclipse, но он описывает проблему без Maven. В принципе, ожидаемое поведение - это то, что я имел раньше.
- читать Running JUnit tests with Maven under Eclipse - это то, что у меня есть. У меня есть Surefire, и я могу запускать все тесты при выборе POM.
- моего Surefire version is 2.18
- конвертирована структура каталогов моего проекта в раскладку Maven по умолчанию (который не было ранее)
- Running a single test in Maven - No tests were executed не применяется, потому что я хочу, чтобы запустить тесты из Eclipse, а не из командной строки.
- [х] Строить autmatically включен
- [х] Maven проект Builder настраивается в свойствах проекта
- The mailing list останавливает нерешенным
- читать о Surefire arguments
Я даю сейчас.
Как сделать эффективный красный-зеленый рефакторинг, т. Е. Запускать только один единичный тест за раз, не добавляя конфигурацию запуска для каждого отдельного теста?
В целом это возможно. Я думаю, что у вас проблемы с конфигурацией с интеграцией Maven/Eclipse. У обоих (Maven и Eclipse) используется один и тот же целевой каталог (т. Е. Где хранятся файлы .class)? – Jan
@Jan: В Java Build File у меня есть «папка вывода по умолчанию», установленная в/target/classes. Исходные папки указывают там (/ src/main/java,/src/main/resources), за исключением модульных тестов (src/test/java), которые указывают на/target/test-classes. –
В моем POM я удалил и указал конкретные имена каталогов, поэтому он строит в/target/classes и/target/test-classes. –