Không thể giải quyết import org.junit


114

Tôi cần giải quyết một vấn đề java cho một cuộc phỏng vấn và họ đã gửi cho tôi lớp kiểm tra. Nó bắt đầu với

import org.junit.Before;

và cũng có cú pháp sau tại các địa điểm:

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

Tôi đã không sử dụng Java trong một thời gian nên điều này khiến tôi hơi bối rối. Tôi đã tải xuống eclipse và khi tôi cố gắng biên dịch tệp thử nghiệm này, có lỗi khi nhập và dấu @. Lỗi nhập sẽ xảy ra:

The import org.junit cannot be resolved.

Và @RunWith thậm chí không được nhận dạng vì nó cố gắng giải quyết nó thành một kiểu.


1
Bạn đã tìm kiếm gì trên mạng? Bạn muốn chúng tôi giải thích chi tiết về cách bạn có thể chạy test case JUnit 4? (Gợi ý: có cái này JUnit4.classtrong mã của bạn)
Luiggi Mendoza


1
bạn cần thêm tệp jar junit vào dự án. Bạn có thể sử dụng junit-dep-4.8.2.jar. Sau đó, bạn có thể nhấp chuột phải và chọn Run as trường hợp thử nghiệm junit
Krushna

2
Bạn đã thêm tệp jar của jUnit vào đường dẫn xây dựng của mình trong eclipse chưa?
Pradeep Simha

Vừa rồi, lẽ ra tôi nên tìm kiếm câu hỏi này. Cảm ơn đã giúp đỡ.
SKLAK

Câu trả lời:


192

Bạn cần thêm junitthư viện vào classpath của dự án của mình. Có một số lựa chọn để đạt được nó tùy thuộc vào thiết lập phát triển của bạn.

  1. Dòng lệnh : Trong trường hợp gọi dòng lệnh, bạn sẽ phải thêm junit.jarvào classpath của ứng dụng với java -cp /path/to/junit.jar. Hãy xem câu trả lời ở đây .

  2. Sử dụng eclipse : Các bản phân phối Eclipse được đóng gói với thư viện này và đây là cách bạn có thể sử dụng nó cho dự án của mình. Nhấp chuột phải vào dự án nhật thực và điều hướng:

Thuộc tính -> Đường dẫn xây dựng Java -> Thư viện -> Thêm thư viện -> JUnit -> Junit 3/4

Trong trường hợp bạn muốn sử dụng một phiên bản khác của jar, thay vì nhấp vào Thêm thư viện ở trên, bạn nên nhấp vào Thêm lọ ngoài và định vị thư viện trên hệ thống tệp.


1
@NishantShreshth làm thế nào để thêm điều này vào một mavendự án?
Kasun Siyambalapitiya

Tôi đã thêm JUnit 4 qua Thuộc tính -> Đường dẫn xây dựng Java, nhưng thỉnh thoảng Eclipse vẫn hiển thị cho tôi lỗi này, mặc dù có thể chạy thử nghiệm mà không gặp sự cố. Khởi động lại Eclipse sẽ giải quyết được sự cố - trong một thời gian. Bất kỳ lời giải thích cho điều này?
Thomas W

Không làm việc cho tôi. Ngay sau khi dự án ở dạng mô-đun, tất cả các nút trong tab Thư viện đều có màu xám. (Với nhật thực 2019-09 và java 11.0.4).
Gyro Gearloose

14

Nhấp chuột phải vào dự án nhật thực và điều hướng:

Thuộc tính -> Đường dẫn xây dựng Java -> Thư viện -> Thêm thư viện -> JUnit -> Junit 3/4

Nó hoạt động trên cơ sở của tôi.


6

bạn có thể dễ dàng tìm kiếm một dòng như "@Test" và sau đó sử dụng tiền tố nhanh "thêm thư viện junit 4 vào đường dẫn xây dựng" tại dòng này. tôi nghĩ rằng điều này nhanh hơn việc thêm junit theo cách thủ công vào dự án.


Điều này không giải quyết được nó trong tình huống của tôi. JUnit nằm trong đường dẫn hoàn hảo nhưng nó vẫn tiếp tục hiển thị lỗi.
猫 IT

1
Làm việc cho tôi ^^
jump_monkey

6

Nếu bạn sử dụng maven và đoạn mã này nằm trong mainthư mục, hãy thử chuyển nó vào testthư mục.


3
@VigneshrajSekarbabu Bởi vì mọi người thường đặt junitphạm vi của nó là test, có nghĩa là chúng sẽ chỉ hoạt động trong thư mục thử nghiệm.
Searene

Cảm ơn bạn @searene .. Tôi đã cố gắng có TestBase của mình trong src / main / java nhưng sau đó không thể nhận được chú thích testNG. vì vậy đã chuyển sang src / test / java. Nhưng bây giờ, tôi đang cố gắng tạo RetryAnalyzer trong src / main / java và IRetrAnalyzer nằm trong org.testng mà tôi không thể lấy trong các lớp src / main / java. bất kỳ ý tưởng những gì có thể giải quyết điều này?
Vigneshraj Sekarbabu

@VigneshrajSekarbabu Một cách là kiểm tra phạm vi các phần phụ thuộc liên quan đến thử nghiệm của bạn, đảm bảo rằng chúng không phải là phụ thuộc test, để bạn có thể sử dụng mọi thứ bên trong /src/main/java.
Searene

5

Nếu bạn đang sử dụng eclipse và làm việc trên một dự án maven, thì các bước trên cũng hoạt động.

Nhấp chuột phải vào thư mục gốc của bạn.

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

Hướng dẫn từng bước tại đây


Đối với tôi điều này chỉ hoạt động. Tôi đang thực hiện gỡ lỗi từ xa cho ứng dụng web của mình, do đó, eclipse gặp một số vấn đề với việc tích hợp junit. Đối với maven, có maven nhập tháng sáu và sẽ chạy thử nghiệm khi chúng tôi chạy mvn clean install. Không phải là một chuyên gia, nhưng đây là những gì tôi nghĩ rằng điều đó xảy ra hoặc ít xảy ra với tôi.
sarthakgupta072 12/1218

2

Có vẻ như tệp jar của Junit không có trong đường dẫn cũng đảm bảo rằng bạn đang sử dụng jdk1.5 trở lên.


Không chỉ là jar, OP nên chạy nó như là một thử nghiệm JUnit (có lẽ OP sẽ hỏi làm thế nào để chạy các lớp Java nếu nó không có mộtpublic static void main(String[] args)
Luiggi Mendoza

Không biết cách liên kết JUnit. Tôi đã hiểu rồi. Nhấp chuột phải vào tên dự án và liên kết JUnit. Cảm ơn.
SKLAK

2

Nếu bạn đang sử dụng Java 9 trở lên, bạn có thể cần yêu cầu phụ thuộc junit trong module-info.java của bạn

module myModule {
    requires junit;
}

Tôi khá chắc chắn rằng vấn đề tôi gặp phải giống với câu hỏi ban đầu được liên kết với cơ chế mô-đun mới này. Bây giờ tôi đã thêm dòng này vào module-info.java hiện có của mình và không còn dấu chéo đỏ trong trình khám phá gói nhưng trong nguồn mọi thứ vẫn như cũ.
猫 IT

2

Nếu sử dụng Maven, bạn có thể nhấp vào ngữ cảnh và chạy 'Maven / Update Project ...'

nhập mô tả hình ảnh ở đây


Khi tôi làm điều này, module-info.java chứa đầy lỗi và lambdas không được nhận dạng. Eclipse / maven đã hoàn nguyên thư viện và phiên bản java thành 1.5 và tôi có <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <version> 3.8 .0 </ version> <configuration> <phát hành> 11 </ phát hành> </ configuration> </ plugin> trong pom của tôi
Gyro Gearloose

1

Trong dòng mã bắt đầu, sao chép các phần tử 'Junit' hoặc 'TestNG' trước đó sẽ hiển thị với Lỗi cho đến khi bạn nhập thư viện với Tệp Dự án.

Để nhập các Thư viện vào dự án:

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

Thêm thư viện Junit


1

Khi bạn thêm TestNG vào phần phụ thuộc Maven của mình, hãy Thay đổi phạm vi từ thử nghiệm sang biên dịch. Hy vọng điều này sẽ giải quyết được vấn đề của bạn ..


Vui lòng xem xét đưa các đề xuất như vậy làm bình luận.
Hades

1

bạn cần thêm phụ thuộc Junit trong tệp pom.xml, điều đó có nghĩa là bạn cần cập nhật phiên bản mới nhất.

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

0

Trong trường hợp bạn muốn tạo Lớp kiểm tra của riêng mình. Trong Eclipse, đi tới Tệp -> Mới -> J Unit Test Case . Sau đó, bạn có thể chọn tất cả các đường dẫn của mình và thiết lập lớp thử nghiệm trong cửa sổ bật lên của trình hướng dẫn.


-1

Cập nhật lên phiên bản JUnit mới nhất trong pom.xml. Nó làm việc cho tôi.


Câu trả lời này sẽ tốt hơn với thêm chi tiết về làm thế nào để làm điều đó - tức là những mã để dán, làm thế nào để tìm ra các phiên bản mới nhất, làm thế nào để tìm kiếm các mã trực tuyến để có được những văn bản đúng vv
LightCC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.