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

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

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>

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Проверьте, расширяет ли ваш тестовый класс "TestCase". если это так, удалите это предложение. Ваш класс не должен распространяться на класс 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

Ответ 5

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

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

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

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

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

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

Ответ 6

Попробуйте добавить

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

@Test
public void testParse()
{

}

Ответ 7

Еще одно возможное решение, которое я выложу на ринг: я не смог запустить тестовый класс либо из окна редактора, ни из обозревателя пакетов, но щелкнув правой кнопкой мыши по имени класса в представлении "Структура" и выбрав Run As JUnit Test действительно работал... Go figure!

Ответ 8

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

Пример:

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

Ответ 9

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

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

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

@BeforeClass
public void testBeforeClass(){
}

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

@BeforeClass
public static void testBeforeClass(){
}

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

Ответ 10

Я нашел ответ:

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

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

Ответ 11

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

Ответ 12

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

Ответ 13

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

Ответ 14

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

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

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

Ответ 15

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

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

Или вы сделали модификацию в своем тестовом классе, удалив аннотацию @Test.
См. Эту страницу wiki page.

Ответ 16

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

Ответ 17

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

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

Ответ 18

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

Ответ 19

Закройте и откройте проект для меня.

Ответ 20

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

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

Ответ 21

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

Простое примечание: у меня есть проект в Eclipse, основанный на maven, и первоначально созданный с использованием "нового maven project" в Eclipse. Я используя JUnit 4.5 для модульных тестов, и вполне мог успешно провести тесты из командной строки с использованием maven и индивидуальные тесты от Eclipse с использованием работать как тест JUnit.... Однако, когда я попытался запустить все тесты в проект, вызывая запуск как JUnit test... в корне проекта node, Eclipse жаловался " не найдено никаких тестов с тестовым бегуном 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

Ответ 22

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

Ответ 23

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

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

Ответ 24

Мне нужно было выполнить mvn clean в командной строке, тогда project- > clean in eclipse. Я переименовал класс заранее, а затем переименовал его, но я сомневаюсь, что это помогло.

Ответ 25

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

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

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
  <attributes>
    <attribute name="optional" value="true"/>
    <attribute name="maven.pomderived" value="true"/>
  </attributes>
</classpathentry>

Ответ 26

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

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

Ответ 27

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

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

Это простой тест, который использует 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();
    }

}

Ответ 28

Использование 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 из редактора запуска Run Configuration напрямую, я получил диалоговое окно из вопроса. Ответ Footix29 был для меня ключом.

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

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

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

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

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

Ответ 29

Есть еще один шанс, вы могли бы изменить 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.

Ответ 30

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

Щелкните правой кнопкой мыши Project → Maven → Обновить проект.

Вы должны быть хорошими, чтобы пойти..