автоматическое включение классов в набор тестов Java

Наборы тестов в Junit4 работают хорошо, но здесь есть загвоздка:

@RunWith(Suite.class)
@Suite.SuiteClasses({ A.class, B.class, ...})

Если кто-то разрабатывает модульный тест и забывает включить его в Suite.SuiteClasses, это, очевидно, проблема.

(это не острая проблема, так как Муравей поймает это позже, но все же)

Поэтому я задался вопросом: если у вас есть тестовая папка в проекте Eclipse и в ней есть несколько пакетов с классами - есть ли способ как-то автоматически включить их все в набор тестов junit4?

(да, вы можете щелкнуть правой кнопкой мыши папку «тест» и выполнить «Запуск от имени Junit», но иногда по какой-то причине отдельные тесты не проходят, в то время как они по отдельности проходят, поэтому я не очень доверяю этому решению, плюс наборы тестов - хорошие игрушки, с которыми можно играть; -)).


person mrkafk    schedule 06.12.2012    source источник
comment
burtbeckwith.com/blog/?p=52.   -  person Jayan    schedule 08.12.2012


Ответы (3)


Я предлагаю ClasspathSuite

import org.junit.extensions.cpsuite.ClasspathSuite;
import org.junit.runner.RunWith;
@RunWith(ClasspathSuite.class)
public class MySuite {}
person NamshubWriter    schedule 01.02.2013
comment
Для поклонников Guava я создал только один файл Guava ClassPath Suite, см. github.com/xmedeko/gcpsuite< /а> - person xmedeko; 23.04.2013

Не ответ, а больше, чем комментарий:

[...] Запускается как Junit, но иногда по какой-то причине не проходит отдельные тесты, в то время как они по отдельности проходят [...]

Причина в том, что некоторые тесты не очищаются правильно. Это всегда должно вас насторожить. Попробуйте определить пару тестов, которые не могут быть выполнены за один «прогон», и внимательно посмотрите на первый тест. Из моего собственного опыта: исправьте эти проблемы как можно скорее (иначе: СЕЙЧАС!), иначе вы можете столкнуться с очень серьезными проблемами позже (обычно: жалобы от QA, например, «тесты не проходят в моей среде»)

person Andreas Dolk    schedule 06.12.2012
comment
Спасибо за это предупреждение! Хотя мне интересно, почему набор тестов со всеми тестами junit работает зеленым, а щелчок правой кнопкой мыши / Run As Junit - нет? :-( (у меня сегодня был такой случай) - person mrkafk; 07.12.2012

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

однако я согласен с частью «исправить их сейчас!». у вас есть серьезная проблема, когда результаты ваших тестов не воспроизводимы

person piotrek    schedule 08.12.2012