Никаких тестов с тест-бегуном «JUnit 4»

Мой тест Java хорошо зарекомендовал себя из Eclipse. Но теперь, когда я повторно запускаю тест из меню run, я получаю следующее сообщение:

No tests found with test runner 'JUnit 4' 

В файле .classpath меня есть все файлы jar , и в конце есть:

    

Как я могу устранить эту ошибку и снова запустить тесты?

это случилось со мной. Восстановление или перезапуск Eclipse не помогло.

Я решил это, переименовав один из методов тестирования, чтобы начать с «test …» (стиль JUnit3), а затем все тесты будут найдены. Я переименовал его в прежнее, и он все еще работает.

Когда мы получаем эти ошибки, похоже, что Eclipse просто смущен. Перезапустите Eclipse, обновите проект, очистите его, запустите Eclipse и повторите попытку. В большинстве случаев это работает как шарм.

В контекстном меню вашего «тестового» каталога выберите «Путь сборки» -> «Использовать в качестве исходной папки». Eclipse должен видеть ваши файлы unitTests.java в качестве исходных файлов. Предупреждение «Не найдено тестов JUnit», потому что в вашем каталоге «build» нет файлов unitTests.class

Проверьте, расширяет ли ваш тестовый class «TestCase». если это так, удалите это предложение. Ваш class не должен распространяться на class TestCase. В большинстве случаев я встречался.

 public class MyTestCase extends TestCase{ @Test public void checkSomething() { //... } } //Result> AssertionFailedError: No test Found in MyTestCase 

После TestCase должно быть хорошо.

 public class MyTestCase { @Test public void checkSomething() { //... } } //Works fine 

Я столкнулся с той же проблемой, и я отлаживал ее на плохих примерах в Интернете и внутренних компонентах junit. В принципе, не заставляйте ваш class расширять TestCase, как показывают некоторые примеры для Junit 4.x. Используйте несколько тестов условного обозначения или если вы хотите иметь аннотацию, вы можете использовать @RunWith (JUnit4.class).

Если вам нужен доступ к методам assert, расширяйте Assert или используйте статический импорт.

Если ваш class расширяет TestCase, то даже если вы используете Runner Runit 4, он будет запущен как 3. Это происходит потому, что в коде инициализации есть обнаружение:

См. JUnit3Builder и строки:

 boolean isPre4Test(Class testClass) { return junit.framework.TestCase.class.isAssignableFrom(testClass); } 

Это возвращает true, и проверка совместимости junit4 не будет проверена.

Попробовать добавить

@ Тест над методом для теста, подобным этому

 @Test public void testParse() { } 

Нет тестов в JUnit4. Вместо этого используйте annotations или используйте старые соглашения об именах JUnit3.

Пример:

 @RunWith(Suite.class) @SuiteClasses({YourClassWithTests.class}) 

Я выяснил ответ:

Я получил эту ошибку, когда я выполнил автономный тест из eclipse (щелкните правой кнопкой мыши на методе и выберите запуск в качестве теста junit),

Когда я выполнил полный class в качестве теста junit, тест выполнил корректно с параметрами.

Когда я сталкиваюсь с этой проблемой, я просто редактирую файл и сохраняю его … работает как шарм

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

Сработал следующий шаг: измените все ваши методы тестирования, присутствующие в @BeforeClass и @AfterClass, на статические методы.

т.е. если у вас есть ваш метод тестирования в следующем формате:

 @BeforeClass public void testBeforeClass(){ } 

затем измените его на:

 @BeforeClass public static void testBeforeClass(){ } 

Это сработало для меня.

Моя проблема заключалась в том, что декларация import org.junit.Test; (или не был добавлен?). Добавив его, мне пришлось удалить еще одну import декларацию (Eclipse подскажет вам, какой из них), и все снова стало работать.

Очень поздно, но решение этой проблемы для меня состояло в том, что имена моих тестов начинаются с писем с надписью: «public void Test». Делаем работу с нижним регистром.

Я попробовал решение от немца. Он работал для всего метода из моего classа, но у меня есть много classов в моем проекте.

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

Надеюсь, поможет.

Еще одно возможное решение, которое я выложу на ринг: я не смог запустить тестовый class ни из windows редактора, ни из обозревателя пакетов, но щелкнув правой кнопкой мыши по имени classа в представлении «Структура» и выбрав «Запустить как JUnit» Тест действительно работал … Иди цифру!

Возможно, ваша конфигурация запуска JUnit была для отдельного тестового classа, и вы каким-то образом изменили эту конфигурацию, чтобы «запустить все тесты в исходной папке, пакете или проекте»,

Но это может вызвать «Нет тестов, найденных с сообщением об ошибке« JUnit 4 »с тестовым бегуном.

Или вы @Test изменения в свой тестовый class, удалив аннотацию @Test .
См. Эту страницу вики .

Я также столкнулся с той же проблемой при запуске теста JUnit. Я решил это, поставив аннотацию @Test чуть выше основной тестовой функции.

То, что зафиксировало мой случай, было похоже на ответ @ JamesG: я перезапустил Eclipse, перестроил проект и обновил его; НО прежде чем я это сделал, я 1-й закрыл проект (щелкнуть правой кнопкой мыши проект в проводнике пакетов -> Закрыть проект), а затем снова открыл его. Тогда это сработало.

Обходное решение, которое я нашел, прежде чем найти это окончательное решение, которое я только что описал: Скопируйте тестовый class и запустите тестовый class как JUnit.

Проверьте, находится ли папка, в которой находятся ваши тесты, исходной папке. Если нет – щелкните правой кнопкой мыши и используйте в качестве исходной папки.

Закрыть и открыть проект работал для меня.

Шесть лет спустя … и все еще есть проблемы с Eclipse и иногда не находят JUnits.

В моем Eclipse Mars 2 я обнаружил, что он не будет распознавать classы тестов, @Test из git, если в файле содержится более 9 или 10 аннотаций @Test . Мне нужно прокомментировать любые дополнительные тесты, запустить тестовый class, затем раскомментировать их и повторно запустить class. Перейти фигурой …

На основе вашего проекта Eclipse maven? Если это так, вам может потребоваться обновить версию m2eclipse.

Просто быстрая заметка: у меня есть проект в Eclipse, основанный на maven, и сгенерированный изначально с использованием мастера «нового maven project» в Eclipse. Я использую JUnit 4.5 для модульных тестов и довольно успешно запускаю тесты из командной строки с использованием maven и отдельных тестов из Eclipse, используя команду JUnit test … Однако, когда я пытался запустить все тесты в проекте, вызывая запуск как тест JUnit … на корневом узле проекта, Eclipse жаловался « нет тестов, найденных с тестовым runner junit 4 ». Решено путем обновления m2eclipse до последней стабильной разработки с сайта обновления m2eclipse (в частности, я обновился с версии 0.9.8.200905041414 до версии 0.9.9.200907201116 в Eclipse Galileo).

Отсюда: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html

Это случилось и со мной. Я обнаружил, что в Eclipse я не создавал новый файл Java Class и поэтому не компилировался. Попробуйте скопировать код в файл classа java, если его еще нет, а затем скомпилируйте.

Я узнал, что Eclipse, похоже, выполняет только тесты стиля JUnit 3, если ваш тестовый class распространяется из TestCase . Если вы удаляете наследование, annotations работали на меня.

Помните, что вам нужно статически импортировать все необходимые методы assert* такие как import static org.junit.Assert.* .

Я также запускаю Eclipse с Maven (m2e 1.4). Тесты выполнялись с Maven, но не с Eclipse … даже после нескольких приложений Maven>Update project .

Моим решением было добавить некоторые строки в .classpath, сгенерированные m2e. Линии теперь прилипают.

       

У меня есть эта проблема время от времени. То, что решает проблему больше всего для меня, – запустить JUnit-тест из конфигураций Run … гарантируя, что JUnit 4 задан как тестовый бегун.

Как правило, я вижу эту проблему при попытке выполнить как … Тест Junit из контекстного меню в обозревателе пакетов. Если вы щелкнете правой кнопкой мыши код для теста, который вы пытаетесь запустить, и вместо выбора «Запуск от имени …», «Junit Test» вы выбираете «Run configurations» … убедитесь, что Project, Test Class и test runner установлены правильно, нажмите «Apply», затем запустите все время работает для меня.

Я начал работать с Selenium и Eclipse в своей работе, и я делал свой первый автоматический тест, и я удалил из кода @Before, @Test и @После заметок, и у меня была эта проблема «Нет тестов с тестовым runner junit4», ,

Моим решением было просто добавить снова @Before, @Test и @After примечания, и с этим работал мой скрипт. Важно не удалять это из кода.

Это простой тест, который использует Google для поиска чего-то:

 import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; public class TestingClass { private WebDriver driver; //Creates an instance of the FirefoxDriver **@Before** public void SetUp() throws Exception { driver = new FirefoxDriver(); } **@Test** //Search using keyword through Google Search public void TestTestClass2 () throws Exception { driver.get("http://www.google.com.mx/"); driver.findElement(By.name("q")).sendKeys("selenium"); Thread.sleep(10000); driver.findElement(By.name("btnG")).click(); Thread.sleep(10000); } //Kill all the WebDriver instances **@After** public void TearDown() throws Exception { driver.quit(); } } 

Используя ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe), у меня была аналогичная проблема с контекстным меню « Right Click Scala Test Class-> Run As -> Scala Junit Test .

Я попробовал отредактировать class (но не для сбоя компиляции), очистки, закрытия проекта, закрытия Eclipse. Ни один из тех, кто работал над восстановлением контекстного меню для classов, которые ранее работали хорошо. Тест-classы не используют аннотацию @Test и вместо этого используют аннотацию @RunWith(classOf[JUnitRunner]) в верхней части classа с использованием кода ScalaTest.

Когда я попытался выбрать Scala Junit Test из редактора запуска Run Configuration напрямую, я получил диалог с вопросом. Ответ Footix29 был для меня ключом.

Я заметил, что, хотя я несколько раз очищал свой проект, мои classы в каталоге / bin фактически не были перестроены через некоторое время.

Вот как я вернулся к контекстному меню и смог снова запустить Scala Junit Test s:

  • manually очистил classы, удалив /bin/* через Explorer
  • Project -> Clean проект вместе с полной перестройкой

Я подозреваю, что редактирование classа вообще может очистить некоторое сохраненное состояние Eclipse и снова запустить его. В моем случае все предыдущие рабочие classы, которые я пробовал, потерпели неудачу, поэтому manual чистый шаг был всего лишь молотом, который мне нужен. Тем не менее, другие трюки, которые влияют на концепцию Eclipse в отношении пути / построения classа, также должны работать.

Кроме того, я думаю, что это поведение было вызвано частично, пытаясь реорганизовать class Scala, переименовав его (который вставляет Scala Eclipse IDE), где вся очистка после первоначального изменения файла является ручной. Ошибок сборки не было, но также не было предупреждений, что я ожидал, что что-то определенно застряло в информации о состоянии сборки Eclipse.

Есть еще один шанс: вы могли бы сменить Junit Test с более низкой версии (например, Junit 3) на Junit 4. Итак, выполните следующие шаги: –

 1. Right Click on class 2. Select Run as >> "Run Configurations" 3. Check your "Test Runner" option in new window 4. If it not same as maven change it for example change it as Junit 4. 

Щелкните правой кнопкой мыши Project -> Build Dependencies -> удалите те, которые были исключены из пути сборки -> Нажмите OK.

Щелкните правой кнопкой мыши Project -> Maven -> Update Project.

Вам должно быть хорошо идти ..

Вы можете исправить эту проблему, выполнив следующие действия:

  • Щелкните правой кнопкой мыши по папке с именем «Тест»> «Путь сборки»> «Использовать в качестве исходной папки»
  • Или вы можете установить classpath так же, как: . Вы заменяете «src / test / java» своим тестовым пакетом

Эта проблема произошла из-за того, что junit не может распознать ваш исходный код: D

  • Очистка после всех тестов junit
  • Получение «NoSuchMethodError: org.hamcrest.Matcher.describeMismatch» при запуске теста в IntelliJ 10.5
  • Как работает Junit @Rule?
  • Как запустить все тесты, принадлежащие определенной категории в JUnit 4
  • Как я могу создать тестовый набор в JUnit 4?
  • Java: Является ли assertEquals (String, String) надежным?
  • Как вы утверждаете, что определенное исключение выбрано в тестах JUnit 4?
  • Давайте будем гением компьютера.