Это снимок редактора Eclipse. Вы можете увидеть тест и вкладку JUnit. Когда я пытаюсь запустить тест, появляется сообщение "Прервано".
Кто-нибудь знает, что здесь происходит?
Это снимок редактора Eclipse. Вы можете увидеть тест и вкладку JUnit. Когда я пытаюсь запустить тест, появляется сообщение "Прервано".
Кто-нибудь знает, что здесь происходит?
Одна из возможностей заключается в том, что бегун Eclipse JUnit путается наличием метода main
и работает, а не с методами тестирования.
Попробуйте прокомментировать метод main
. Это не должно быть вообще, ИМО.
(Кстати, основной метод не подходит мне. Я бы подумал, что он будет создавать экземпляр TestSuite
с классами unit test в качестве параметров, но вы, кажется, даете ему класс под Это не будет иметь никаких "тестовых" методов, которые объясняли бы, почему тесты не выполняются...)
Как уже упоминалось, удалите основной метод, может быть, helpt. Любая конкретная причина для расширения от TestCase, которая является Juni3, если я правильно помню? Вы попробовали Junit 4 с помощью аннотации @Test
например:
@Test
public void testSomething() {
//you stuff
}
Не уверен, что ваша проблема уже решена.
У меня была аналогичная проблема, которая была решена, когда я исправил Project
→ Properties
→ Java Compiler
→ JDK Compliance settings
.
У меня был конфликт между 1.5 и 1.6. Когда я вернулась назад к 1.5 (которая была активной активной JRE), мой JUnits снова начал работать.
У меня была такая же проблема, когда я впервые добавил файл jar junit в путь сборки. Убедитесь, что вы добавляете файл junit.jar в раздел "Путь сборки Java → путь к классу", а не в раздел "путь к модулю".
Вручную определить поведение запуска: Щелкните правой кнопкой мыши → Запустить как → Запустить конфигурации:
Затем вы можете определить все детали тестового примера: тестовый класс, методы тестирования, путь к классам, версию junit, аргументы JVM и т.д.
Когда я не видел никаких тестов, запускаемых, я открыл консоль и увидел следующую ошибку:
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, и я мог бы быть в хорошей форме. Я пошел по пути наименьшего сопротивления.
Случилось, когда у меня было две банки junit на пути к классам. Одна банка была скрыта внутри автономного сервера selenium. Я исправил проблему, удалив другую банку из пути к классам и позволяя среде выполнения использовать junit jar в автономном сервере selenium. Я не мог найти никаких сообщений в консоли о конфликте классов или предупреждении о версии Java.
В моем случае было то, что я сделал рефакторинг, а .classpath не обновлялся, а на консоли показывалась ошибка о некорректном классе. После обновления файла classpath все снова заработало.
Не уверен, что это помогает, но в моем случае мне пришлось обновить конфигурацию проекта Maven- > update Project до того, как Junit наконец-то начала отвечать
В моем случае я использовал внутренний класс, который не был идентифицирован как подходящий для тестов. Исправление заключалось в том, чтобы сделать этот класс статическим внутренним классом следующим образом:
public class MyClass { //... class I wanted to test
}
Этот внутренний класс (т.е. в том же файле) используется для тестирования MyClass, но eclipse не находит его... если он не является статическим.
public static class MyClassTest { // ....
}
Убедитесь, что у вас нет другого процесса блокировки выполнения. В моем случае рабочее пространство здания спало, блокируя выполнение всех юнитов.