Імпорт org.junit неможливо вирішити


114

Мені потрібно вирішити проблему Java на співбесіду, і вони відправили мені тестовий клас. Це починається з

import org.junit.Before;

а також має такий синтаксис у місцях:

@RunWith(JUnit4.class)
...
@Before
...
@Test

Я не використовував Java деякий час, тому це мене трохи бентежить. Я завантажив затемнення, і коли я намагаюся скласти цей тестовий файл, виникають помилки при імпорті та на знаках @. Помилка імпорту містить:

The import org.junit cannot be resolved.

І @RunWith навіть не розпізнається, оскільки він намагається вирішити його до типу.


1
Що ви шукали в мережі? Ви хочете, щоб ми детально пояснили, як можна запустити тестовий випадок JUnit 4? (Підказка: це є JUnit4.classу вашому коді)
Луїджі Мендоса


1
вам потрібно додати файл jar jar до проекту. Ви можете використовувати junit-dep-4.8.2.jar. Тоді ви можете натиснути правою кнопкою миші та вибрати запустити як тестовий випадок
Krushna

2
Ви додали файл jar від файлу jUnit до шляху збирання у затемненні?
Pradeep Simha

Так само, я повинен був просто погуглити це питання. Дякую за допомогу.
СКЛАК

Відповіді:


192

Вам потрібно додати junitбібліотеку до класного шляху вашого проекту. Існує кілька варіантів для досягнення цього, залежно від налаштувань вашої розробки.

  1. Командний рядок : у випадку викликів командного рядка вам доведеться додати junit.jarдо класного шляху вашої програми за допомогою java -cp /path/to/junit.jar. Подивіться на відповіді тут .

  2. Використання eclipse : Дистрибуції Eclipse в комплекті з цією бібліотекою, і саме так ви можете використовувати його для свого проекту. Клацніть правою кнопкою миші на проект затемнення і перейдіть:

Властивості -> Шлях збірки Java -> Бібліотеки -> Додати бібліотеку -> JUnit -> Junit 3/4

У сценаріях, де ви хочете використовувати іншу версію баночки, замість того, щоб клацнути на Додати бібліотеку вище, слід натиснути кнопку Додати зовнішній банку та знайти бібліотеку у файловій системі.


1
@NishantShreshth як додати це до mavenпроекту?
Kasun Siyambalapitiya

Я додав JUnit 4 через Properties -> Java Build Path, але раз у раз Eclipse все ще показує мені цю помилку, хоча запуск тестів можливий без проблем. Перезапуск Eclipse вирішує проблему - на деякий час. Будь-яке пояснення цьому?
Thomas W

Не працює для мене. Як тільки проект стає модульним, всі кнопки на вкладці «Бібліотеки» стають сірими. (З затемненням 2019-09 і java 11.0.4).
Gyro

14

Клацніть правою кнопкою миші на проект затемнення та перейдіть:

Властивості -> Шлях збірки Java -> Бібліотеки -> Додати бібліотеку -> JUnit -> Junit 3/4

Це працює на моєму.


6

ви можете легко шукати такий рядок, як "@Test", а потім скористатися швидким виправленням "додати бібліотеку junit 4 до шляху збирання" у цьому рядку. Я думаю, що це швидше, ніж додавати junit вручну до проекту.


Це не вирішує це в моїй ситуації. JUnit ідеально підходить, але він продовжує показувати помилку.
猫 ІТ

1
Працює для мене ^^
jumping_monkey

6

Якщо ви використовуєте maven, і цей фрагмент коду знаходиться в mainпапці, спробуйте перемістити його в testпапку.


3
@VigneshrajSekarbabu Оскільки люди зазвичай встановлюють junitобласть, як test, це означає, що вони працюватимуть лише в тестовій папці.
Searene

Дякую @searene .. Я намагався мати свій TestBase в src / main / java, але тоді не зміг отримати анотації testNG. тому переміщено до src / test / java. Але зараз я намагаюся створити RetryAnalyzer в src / main / java, а IRetrAnalyzer знаходиться в org.testng, який я не в змозі потрапити в src / main / java класи. будь-яка ідея, що могло б це вирішити?
Vigneshraj Sekarbabu

@VigneshrajSekarbabu Одним із способів є перевірка сфери залежностей від тесту, переконайтеся, що вони відсутні test, щоб ви могли використовувати все всередині /src/main/java.
Searene

5

Якщо ви використовуєте затемнення та працюєте над проектом Maven, тоді також працюють вищевказані кроки.

Клацніть правою кнопкою миші на вашій кореневій папці.

Properties -> Java Build Path -> Libraries -> Add Library -> JUnit -> Junit 3/4

Покрокові інструкції тут


Для мене це працювало лише. Я виконував віддалену налагодження свого веб-додатку, тому у затемнення виникли деякі проблеми з інтеграцією Джуніту. Що стосується Maven, так Maven імпортує Джуніт і запустить тести, коли ми запустимо mvn clean install. Не експерт, але я вважаю, що це відбувається або принаймні сталося зі мною.
sarthakgupta072

2

Здається, що файл jar jar не знаходиться в шляху, також переконайтеся, що ви використовуєте jdk1.5 або вище.


Не просто баночку, OP повинен запускати її як тест JUnit (можливо, ОП запитає, як запустити клас Java, якщо у нього немаєpublic static void main(String[] args)
Luiggi Mendoza

Не знав, як зв’язати JUnit. Я зрозумів це. Клацніть правою кнопкою миші назву проекту та зв’яжіть JUnit. Дякую.
СКЛАК

2

Якщо ви використовуєте Java 9 або вище, можливо, вам знадобиться вимагати залежність від джуніту у вашому модулі-info.java

module myModule {
    requires junit;
}

Я впевнений, що проблема, з якою я стикаюся, та сама, що і оригінальне питання, пов'язана з цим новим модульним механізмом. Тепер я додав цей рядок до мого існуючого module-info.java, і немає більше червоного хреста в Explorer Explorer, але в джерелі все залишається тим самим.

2

Якщо ви користуєтесь Maven, ви можете контекстно натиснути та запустити "Maven / Update Project ..."

введіть тут опис зображення


Коли я це роблю, module-info.java заповнюється помилками, а лямбда не розпізнаються. Eclipse / maven повернув бібліотеку та версію java до 1.5, а у мене є <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </version> <configuration> <release> 11 </release> </configuration> </plugin> в моїй пам’яті
Gyro

1

У початковому рядку коду копія минулих елементів "Junit" або "TestNG" відображатиметься з помилкою, поки ви не імпортуєте бібліотеку з файлом проекту.

Щоб імпортувати бібліотеки до проекту:

Right Click on the Project --> Properties --> Java Build Path --> Libraries -> Add Library -> 'Junit' or 'TestNG'

Додати бібліотеки Junit


1

Коли ви додасте TestNG до своїх залежностей від Maven, змініть область застосування від тестової на компіляційну. Сподівайтеся, це вирішить вашу проблему ..


Просимо розглянути такі пропозиції як коментарі.
Аїд

1

вам потрібно додати залежність Junit у файл pom.xml, це означає, що вам потрібно оновити останню версію.

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 

0

Якщо ви хочете створити свій власний тестовий клас. У Eclipse перейдіть до Файл -> Новий -> Тестовий випадок J Unit . Потім ви можете вибрати всі свої шляхи та тестування налаштування класу у спливаючому вікні майстра.


-1

Оновлення до останньої версії JUnit у pom.xml. Це працює для мене.


ця відповідь буде кращою з детальнішими відомостями про те, як це зробити - тобто, який код потрібно вставити, як з’ясувати останню версію, як шукати код в Інтернеті, щоб отримати потрібний текст тощо.
LightCC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.