Подтвердить что ты не робот

Тесты JUnit не работают в Eclipse

Это снимок редактора Eclipse. Вы можете увидеть тест и вкладку JUnit. Когда я пытаюсь запустить тест, появляется сообщение "Прервано".

enter image description here

Кто-нибудь знает, что здесь происходит?

4b9b3361

Ответ 1

Одна из возможностей заключается в том, что бегун Eclipse JUnit путается наличием метода main и работает, а не с методами тестирования.

Попробуйте прокомментировать метод main. Это не должно быть вообще, ИМО.

(Кстати, основной метод не подходит мне. Я бы подумал, что он будет создавать экземпляр TestSuite с классами unit test в качестве параметров, но вы, кажется, даете ему класс под Это не будет иметь никаких "тестовых" методов, которые объясняли бы, почему тесты не выполняются...)

Ответ 2

Как уже упоминалось, удалите основной метод, может быть, helpt. Любая конкретная причина для расширения от TestCase, которая является Juni3, если я правильно помню? Вы попробовали Junit 4 с помощью аннотации @Test

например:

@Test
public void testSomething() {
     //you stuff
}

Ответ 3

Не уверен, что ваша проблема уже решена.

У меня была аналогичная проблема, которая была решена, когда я исправил Project Properties Java Compiler JDK Compliance settings.

У меня был конфликт между 1.5 и 1.6. Когда я вернулась назад к 1.5 (которая была активной активной JRE), мой JUnits снова начал работать.

Ответ 4

У меня была такая же проблема, когда я впервые добавил файл jar junit в путь сборки. Убедитесь, что вы добавляете файл junit.jar в раздел "Путь сборки Java → путь к классу", а не в раздел "путь к модулю".

Ответ 5

Вручную определить поведение запуска: Щелкните правой кнопкой мыши → Запустить как → Запустить конфигурации:

Затем вы можете определить все детали тестового примера: тестовый класс, методы тестирования, путь к классам, версию junit, аргументы JVM и т.д.

Ответ 6

Когда я не видел никаких тестов, запускаемых, я открыл консоль и увидел следующую ошибку:

java.lang.UnsupportedClassVersionError: junit/framework/Test (Unsupported major.minor version 49.0)
   at java.lang.ClassLoader.defineClass0(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.defineClass(Unknown Source)
   at java.net.URLClassLoader.access$100(Unknown Source)
   at java.net.URLClassLoader$1.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:328)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:318)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:313)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:291)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:212)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

После дальнейших исследований я понял, что рамки junit, которые я использовал, были построены против 1.6 jre, и я строю свои модульные тесты против 1,3 jre. Когда я построил модульные тесты против 1.6, мои тесты закончились. В качестве альтернативы, я полагаю, я мог бы построить (или найти) junit против 1.3, и я мог бы быть в хорошей форме. Я пошел по пути наименьшего сопротивления.

Ответ 7

Случилось, когда у меня было две банки junit на пути к классам. Одна банка была скрыта внутри автономного сервера selenium. Я исправил проблему, удалив другую банку из пути к классам и позволяя среде выполнения использовать junit jar в автономном сервере selenium. Я не мог найти никаких сообщений в консоли о конфликте классов или предупреждении о версии Java.

Ответ 8

В моем случае было то, что я сделал рефакторинг, а .classpath не обновлялся, а на консоли показывалась ошибка о некорректном классе. После обновления файла classpath все снова заработало.

Ответ 9

Не уверен, что это помогает, но в моем случае мне пришлось обновить конфигурацию проекта Maven- > update Project до того, как Junit наконец-то начала отвечать

Ответ 10

В моем случае я использовал внутренний класс, который не был идентифицирован как подходящий для тестов. Исправление заключалось в том, чтобы сделать этот класс статическим внутренним классом следующим образом:

public class MyClass { //... class I wanted to test
}

Этот внутренний класс (т.е. в том же файле) используется для тестирования MyClass, но eclipse не находит его... если он не является статическим.

public static class MyClassTest  { // ....
}

Ответ 11

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