Мой тест на Java хорошо работал в Eclipse. Но теперь, когда я перезапускаю тест из меню запуска, я получаю следующее сообщение:
No tests found with test runner 'JUnit 4'
В .classpath
файле у меня есть все jar
файлы, а в конце есть:
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Как я могу устранить эту ошибку и снова запустить тесты?
Ответы:
это только что случилось со мной. Перестройка или перезапуск Eclipse не помогли.
Я решил это, переименовав один из методов тестирования, чтобы начать с "test ..." (стиль JUnit3), а затем были найдены все тесты. Я переименовал его обратно в то, что было раньше, и он все еще работает.
источник
testQuotes
и другие методы, которые не начинаются с теста, но я все равно получаю ошибку «Тесты не найдены»junit.framework.TestCase
, и мои методы нужно было начинать с "test". Вместо расширенияTestCase
я добавил import :import static org.junit.Assert.*;
, и я могу называть свои методы, как хочу. Bizarre ...Когда мы получаем эти ошибки, кажется, что Eclipse просто сбит с толку. Перезапустите Eclipse, обновите проект, очистите его, дайте Eclipse восстановить его и повторите попытку. В большинстве случаев это работает как шарм.
источник
В контекстном меню вашего каталога «test» выберите «Путь сборки» -> «Использовать как исходную папку». Eclipse должен видеть ваши файлы unitTests.java в качестве исходных файлов. Предупреждение: «Тесты JUnit не найдены» возникает, потому что в вашем каталоге «build» нет файлов unitTests.class
источник
Проверьте, расширяет ли ваш тестовый класс TestCase. если да, удалите этот пункт. Ваш класс не должен расширяться от класса «TestCase». Это большинство случаев, которые я встречал.
После TestCase должно быть все в порядке.
источник
Я столкнулся с той же проблемой, и я отлаживал ее на плохих примерах в Интернете и внутреннем устройстве junit. В принципе, не заставляйте свой класс расширять TestCase, как показано в некоторых примерах для Junit 4.x. Используйте некоторое соглашение об именах Test или, если вы хотите иметь аннотацию, вы можете использовать @RunWith (JUnit4.class).
Если вам нужен доступ к методам assert, расширьте Assert или используйте статический импорт.
Если ваш класс расширяет TestCase, то даже если вы используете Junit 4 Runner, он будет запускаться как 3. Это связано с тем, что в коде инициализации есть обнаружение:
См. JUnit3Builder и строки:
Это возвращает истину, и тест на совместимость с junit4 не будет выполняться.
источник
@RunWith(JUnit4)
GroovyTestCase и расширил его. Без@RunWith(JUnit4)
меня такие же проблемы.Попробуйте добавить
@Test выше метода для такого теста
источник
Еще одно возможное решение, которое я брошу в кольцо: я не смог запустить тестовый класс ни из окна редактора, ни из проводника пакетов, но щелкнул правой кнопкой мыши имя класса в представлении Outline и выбрал Run As JUnit Тест действительно сработал ... Иди разберись!
источник
В JUnit4 нет тестов. Используйте вместо них аннотации или старые соглашения об именах JUnit3.
Пример:
источник
Это случилось и со мной. Я попытался перезапустить Eclipse, а также добавил в свои методы тестирования тесты. Ни то, ни другое не сработало.
Следующий шаг сработал: измените все ваши тестовые методы, присутствующие в @BeforeClass и @AfterClass, на статические методы.
т.е. если у вас есть тестовый метод в следующем формате:
затем измените его на:
Это сработало для меня.
источник
Я нашел ответ:
Я получил эту ошибку, когда выполнил автономный тест из eclipse (щелкните правой кнопкой мыши метод и выберите запуск как тест junit),
Когда я выполнил весь класс как тест junit, тест прошел правильно с параметрами.
источник
Когда я сталкиваюсь с этой проблемой, я просто редактирую файл и сохраняю его ... работает как шарм
источник
Моя проблема заключалась в том, что объявление
import org.junit.Test;
исчезло (или не было добавлено?). После добавления мне пришлось удалить еще одноimport
объявление (Eclipse подскажет, какое именно), и все снова заработало.источник
Очень поздно, но для меня проблему решило то, что все имена моих тестовых методов начинались с заглавных букв: «public void Test». Создание нижнего регистра t сработало.
источник
Я попробовал решение от Germán. Это сработало для всех методов моего класса, но в моем проекте много классов.
Поэтому я попытался удалить из пути сборки, а затем снова добавить его. Это сработало отлично.
Надеюсь, поможет.
источник
Шесть лет спустя ... и все еще есть проблемы с Eclipse и иногда с невозможностью найти JUnits.
В моем Eclipse Mars 2 я обнаружил, что он не распознает тестовые классы, извлеченные из git, если
@Test
в файле более 9 или 10 аннотаций. Мне нужно закомментировать любые дополнительные тесты, запустить тестовый класс, затем раскомментировать их и повторно запустить класс. Иди разбери ...источник
Возможно, ваша конфигурация запуска JUnit была для отдельного тестового класса, и вы каким-то образом изменили эту конфигурацию, чтобы «запускать все тесты в исходной папке, пакете или проекте»
Но это могло вызвать сообщение об ошибке «Тесты не найдены с средством запуска тестов 'JUnit 4'».
Или вы внесли изменения в свой тестовый класс, удалив
@Test
аннотацию.См. Эту страницу вики .
источник
toto.lolo.Testrunner
а неtoto.lolo.testrunner
('T')Я также столкнулся с той же проблемой при запуске теста JUnit. Я решил эту проблему, разместив аннотацию @Test чуть выше основной тестовой функции.
источник
То, что исправило мой случай, было похоже на ответ @ JamesG: я перезапустил Eclipse, перестроил проект и обновил его; НО, прежде чем я сделал что-либо из этого, я сначала закрыл проект (щелкните правой кнопкой мыши проект в проводнике пакетов -> Закрыть проект), а затем снова открыл его. Тогда это сработало.
Обходное решение, которое я нашел до того, как нашел окончательное решение, которое я только что описал: скопируйте тестовый класс и запустите тестовый класс как JUnit.
источник
Убедитесь, что папка, в которой находятся ваши тесты, является исходной папкой. Если нет - щелкните правой кнопкой мыши и используйте как исходную папку.
источник
Закройте и откройте проект, который у меня сработал.
источник
Есть еще один шанс, что вы могли изменить Junit Test с более ранней версии (например, Junit 3) на Junit 4. Так выполните следующие шаги: -
источник
Добавьте
@Test
поверх теста.Наведите указатель мыши на аннотацию.
Выберите 'добавить библиотеку junit 4 в путь к классам'
источник
Ваш проект Eclipse основан на maven? Если это так, вам может потребоваться обновить версию m2eclipse.
Отсюда: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html
источник
Это случилось и со мной. Я обнаружил, что в Eclipse я не создавал новый файл класса Java, поэтому он не компилировался. Попробуйте скопировать свой код в файл класса java, если его еще нет, а затем скомпилировать.
источник
Я обнаружил, что Eclipse, похоже, выполняет тесты стиля JUnit 3 только в том случае, если ваш тестовый класс расширяется от
TestCase
. Если убрать наследование, у меня аннотации сработали.Помните, что вам нужно статически импортировать все необходимые
assert*
методы, напримерimport static org.junit.Assert.*
.источник
Мне пришлось выполнить mvn clean в командной строке, затем project-> clean в eclipse. Я заранее переименовал класс, а затем переименовал его обратно, но сомневаюсь, что это помогло.
источник
Я также запускаю Eclipse с Maven (m2e 1.4). Тесты проводились с Maven, но не с Eclipse ... даже после нескольких приложений
Maven>Update project
.Мое решение заключалось в том, чтобы добавить несколько строк в .classpath, созданный m2e. Линии теперь приклеиваются.
источник
Время от времени у меня возникает эта проблема. Для меня проблема больше всего решает запуск теста JUnit из конфигураций Run ... гарантируя, что JUnit 4 установлен как средство запуска теста.
Обычно эта проблема возникает при попытке запустить тест Junit от имени ... из контекстного меню в проводнике пакетов. Если вы щелкните правой кнопкой мыши код для теста, который вы пытаетесь запустить, и вместо того, чтобы выбрать Run As ... Junit Test, вы выберете Run configurations ... убедитесь, что Project, Test Class и средство запуска тестов настроены правильно, нажав Apply, затем запустите у меня все время работает.
источник
Я начал работать с Selenium и Eclipse в своей работе, и я делал свой первый автоматический тест, и я удалил из кода заметки @Before, @Test и @After, и у меня возникла эта проблема: «Тесты не найдены с помощью средства запуска тестов junit4» .
Мое решение заключалось в том, чтобы снова добавить заметки @Before, @Test и @After, и с этим мой скрипт работал. Важно не удалить это из кода.
Это простой тест, который использует Google для поиска чего-либо:
источник
Используя ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe), у меня была аналогичная проблема с
Right Click Scala Test Class-> Run As -> Scala Junit Test
контекстным меню.Я попытался отредактировать класс (но не из-за сбоя компиляции), очистить, закрыть проект, закрыть Eclipse. Ни один из них не помог восстановить контекстное меню для классов, которые раньше работали хорошо. Тестовые классы не используют
@Test
аннотацию, а вместо этого используют@RunWith(classOf[JUnitRunner])
аннотацию в верхней части класса с использованием кода ScalaTest.Когда я попытался выбрать
Scala Junit Test
из редактора запуска конфигурации запуска напрямую, я получил диалоговое окно с вопросом. Ответ Footix29 был для меня ключевым.Я заметил, что, хотя я несколько раз очищал свой проект, мои классы в каталоге / bin на самом деле не перестраивались какое-то время.
Вот как я вернулся в контекстное меню и снова смог запустить
Scala Junit Test
s:manually
очистил классы, удалив/bin/<package dir>*
через проводникProject -> Clean
редактировал проект вместе с полной перестройкойЯ подозреваю, что редактирование класса в целом может очистить некоторое сохраненное состояние Eclipse и снова запустить его. В моем случае все предыдущие рабочие классы, которые я пробовал, потерпели неудачу, поэтому
manual
чистый шаг был как раз тем молотком, который мне нужен. Однако другие уловки, которые влияют на концепцию Eclipse о пути к классу / состоянии сборки, также должны работать.Кроме того, я думаю, что это поведение было частично вызвано попыткой рефакторинга класса Scala путем его переименования (чего не хватает в Scala Eclipse IDE), где вся очистка после первоначального изменения файла выполняется вручную. Ошибок сборки не было, но также не было предупреждений, которые я ожидал, означающих, что что-то определенно застряло в информации о состоянии сборки Eclipse.
источник