Можно ли запускать тесты JUnit из нескольких пакетов в Eclipse? - PullRequest
50 голосов
/ 05 января 2009

Можно ли запускать тесты JUnit для нескольких пакетов одновременно, не создавая вручную наборы тестов.

Например, если у меня есть иерархия:

code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo.bbb

Возможно ли:

  1. Запустить все тесты в code.branchone и в дочерних пакетах
  2. Запустите все тесты, скажем, code.branchone.aaa и code.branchtwo.bbb

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

Ответы [ 7 ]

25 голосов
/ 17 февраля 2013

Да, это возможно. По крайней мере, самый простой способ для меня - добавить класс тестового набора. Это может выглядеть так:

package tests;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import tests.message.ATest;
import tests.validator.BTest;
import tests.validator.CTest;
import tests.validator.DTest;

@RunWith(Suite.class)
@SuiteClasses({ ATest.class, 
        BTest.class, 
        CTest.class, 
        DTest.class })
public class AllTests {

}

Это позволит вам протестировать любой класс, который вы импортируете, независимо от того, в каком пакете он находится. Чтобы запустить его в eclipse, просто щелкните правой кнопкой мыши класс AllTests и запустите его как тест JUnit. Затем он запустит все тесты, которые вы определили в @SuiteClasses.

Это будет работать и со связанными источниками, я использую это все время.

19 голосов
/ 23 ноября 2012

Другой способ:

Нажмите на черный треугольник, обозначенный красным прямоугольником на рисунке ниже (в вашем Затмении, а не здесь:).)

enter image description here

Затем откройте настройки запуска, создайте новую конфигурацию и установите «Выполнить все тесты ...», как показано на рисунке ниже.

enter image description here

13 голосов
/ 03 июля 2013

Может быть, не совсем то, что было в первоначальном вопросе, но вы можете легко запустить все тесты всего проекта , просто щелкнув правой кнопкой мыши по проекту -> Run As JUnitTest. Не волнуйтесь, где находятся аннотированные классы, это будет отсканировано.

Это не работает, если применяется к папке test-src или к пакету с подпакетами. Довольно обидно на самом деле -.-

3 голосов
/ 05 января 2009

Я уверен, что вы можете немного изменить это. Создайте коллекцию свойства CLASSES_DIR и зациклите его в методе findClasses. (Junit4)

http://burtbeckwith.com/blog/?p=52

1 голос
/ 05 января 2009

В Eclipse, в ваших конфигурациях отладки / запуска вы можете использовать следующие опции:

  1. Выполнить одиночный тест
  2. Запустить все тесты в выбранном проекте, пакете или исходной папке

Я думаю, что второй вариант - это ваш друг в этом случае.

1 голос
/ 05 января 2009

Конечно, щелкните правой кнопкой мыши по нужным пакетам и выберите Run As ... JUnit Test

1 голос
/ 05 января 2009

Полагаю, вы можете добавить все свои тестовые пакеты в один каталог. Если вы щелкнете правой кнопкой мыши по этому каталогу, то вы увидите доступную опцию «запустить как -> JUnit test». Это запустит все тесты, содержащиеся в каталоге, и поймает все, что вы добавили. Любые новые тесты добавляются туда вместе с остальными, и независимо от того, какое у вас имя пакета, это не имеет значения. Надеюсь, это поможет

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