Как найти тесты jUnit в проекте Java? - PullRequest
1 голос
/ 11 ноября 2011

У меня есть проект Java с большим количеством классов. Теперь я хочу получить список всех тестов jUnit. Моя идея заключалась в том, чтобы использовать для этого grep.

Итак, я перешел в корневую папку и использую следующую команду:

grep junit -R ./ > output.txt

Но, очевидно, это не правильно. Итак, мой вопрос. Как правильная команда? И есть ли способы, которые проще найти в тестах jUnit?

Ответы [ 4 ]

4 голосов
/ 11 ноября 2011
find . -name *.java | egrep -R @Test . | cut -f1 -d" " | cut -f1 -d: > _1

Если у вас есть и Junit 3, вы можете запустить:

find . -name *Test.java >> _1
1 голос
/ 11 ноября 2011

Вы бы хотели:

grep -r junit *

Но вы должны быть немного осторожны с этим, так как он будет проходить через все файлы, включая банки.

Лучше использовать find или ack:

ack --java -cl '@Test' # Print filenames with, and # occurences of, @Test annotations

Или более скучно:

find . -name *.java | xargs grep junit
ack --java junit # Or, more accurately:
ack --java 'import\s.*?junit.*'

(Если вы не используете ack, для некоторых вещей это простоудивительный.)

1 голос
/ 11 ноября 2011
find . -name "*.java" | xargs grep -il "junit"

На английском: Начиная с текущего каталога, найдите все файлы, которые заканчиваются на ".java".
Для каждого найденного файла выполните поиск "junit" без учета регистра.
Если "junit" найден, выведите только имя файла.

0 голосов
/ 11 ноября 2011

Я бы grep для "extends TestCase" - результаты, вероятно, будут более надежными

Любой класс, расширяющий TestCase, автоматически является классом JUnit.

В зависимости от того, используете ли вы jUnit 3 или 4, у вас может не быть @Test аннотаций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...