Lớp không tìm thấy: Bộ kiểm tra trống trong IntelliJ


183

Tôi mới bắt đầu chương trình khoa học máy tính tại trường đại học và tôi gặp một số vấn đề với IntelliJ. Khi tôi cố chạy thử nghiệm đơn vị, tôi nhận được thông báo

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Tôi cũng thấy một thông báo có tên "Không có bài kiểm tra nào được tìm thấy" ở bên trái màn hình của tôi. Mã kiểm tra của tôi ở đây:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

Và mã dự án của tôi ở đây:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Làm thế nào tôi có thể làm cho các bài kiểm tra của tôi để làm việc? Tôi đang sử dụng phiên bản mới nhất của IntelliJ IDEA CE.


7
Vì vậy, nhiều điều có thể đi sai. Đối với tôi, nó đơn giản như gõ mvn clean packagevào thiết bị đầu cuối. Không chắc chắn tại sao IntelliJ nhập dự án không chính xác ngay từ đầu.
MarkHu

1
Đối với tôi chỉ cần tạo thư mục là "kiểm tra tài nguyên gốc" ...
Xin Meng


Xây dựng -> Làm sạch và Xây dựng -> Xây dựng lại là đủ với tôi.
gustavoknz

Câu trả lời:


109

Có cùng một thông điệp. Tôi đã phải loại bỏ cấu hình Run / Debug.

Trong trường hợp của tôi, tôi đã chạy thử nghiệm đơn vị như một thử nghiệm cục bộ trước đây. Sau đó, tôi chuyển thử nghiệm của mình sang gói androidTest và thử chạy lại. Android Studio đã nhớ cấu hình chạy lần cuối nên đã cố gắng chạy lại nó dưới dạng thử nghiệm đơn vị cục bộ tạo ra lỗi tương tự.

Sau khi gỡ bỏ cấu hình và chạy thử nghiệm một lần nữa, nó tạo ra một cấu hình mới và hoạt động.

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


Tôi nghĩ rằng trong hầu hết các trường hợp, giải pháp của bạn sẽ là phổ quát nhất và ít phép thuật nhất. Làm việc trong dự án của tôi như một nét duyên dáng.
ba3a

Tôi đã thử nó nhưng nó không hoạt động. Tôi cũng đã phải vô hiệu hóa tiền mặt. File > Cashes / Restart
Lukasz

Tôi đã thử nó và cũng vô hiệu hóa tiền mặt. Nhưng vẫn không hoạt động.
cánh

Điều này làm việc cho tôi sau khi tôi nhớ nhấp vào nút ok rõ ràng thay vì chỉ đóng hộp thoại :-)
rimsky

Tôi không thấy bất kỳ mục "Người chạy cụ cụ thể" nào trong Android Studio của mình.
david

58

tôi đã đi đến

File -> Invalidate Caches/Restart...

và sau đó nó làm việc cho tôi.


6
Tôi đã làm điều này, và sau đó cũng phải xóa các cấu hình thử nghiệm.
Johan Henkens

Nó không giúp gì trong trường hợp của tôi.
dùng3791111

Tệp> Bộ nhớ cache không hợp lệ / Khởi động lại> Chỉ cần khởi động lại làm việc cho tôi
Hashmatullah Noorzai

49

Tôi gặp vấn đề tương tự. Tôi xây dựng lại dự án, và nó đã giúp tôi.

Chuyển đến Xây dựng -> Xây dựng lại dự án

Sau đó, nếu bạn đang sử dụng công cụ Maven, tôi khuyên bạn nên sử dụng tùy chọn Reimport All Maven Project


Nếu nó không giúp ích, hãy thử một giải pháp khác có thể:

  • Đi tới Tệp -> Bộ đệm / Khởi động lại không hợp lệ -> Không hợp lệ và khởi động lại

hoặc là:

  • Trong cấu trúc dự án Maven của bạn, src / main / java, nhấp chuột phải vào thư mục java và chọn tùy chọn Đánh dấu thư mục là -> Nguồn gốc

    Tương tự làm tương tự với thư mục kiểm tra, vì vậy: src / test / java nhấp chuột phải vào thư mục java và chọn tùy chọn Đánh dấu thư mục như -> Kiểm tra nguồn gốc

hoặc là:

  • Đi đến Chạy -> Chỉnh sửa Cấu hình và trong phần JUnit xóa cấu hình kiểm tra. Áp dụng các thay đổi. Sau đó cố gắng chạy thử nghiệm của bạn. Cấu hình mới sẽ được tạo tự động.

hoặc là:

  • Chuyển đến Tệp -> Cấu trúc dự án , chọn Mô-đun , sau đó chọn mô-đun thích hợp của bạn và chuyển đến tab Đường dẫn .
    Kiểm tra các tùy chọn:
    Nút radio Sử dụng đường dẫn đầu ra biên dịch mô-đun nên được chọn.

    Đường dẫn đầu ra phải nằm trong dự án của bạn. Ngoài ra đường dẫn đầu ra thử nghiệm phải là thư mục bên trong dự án của bạn. Ví dụ: nó có thể trông tương tự:
    Đường dẫn đầu ra: C: \ path \ to \ your \ module \ yourModule \ target \ class
    Kiểm tra đường dẫn đầu ra: C: \ path \ to \ your \ module \ yourModule \ target \ test-class

    Loại trừ đầu ra đường dẫn nên được bỏ chọn.

10
Xây dựng lại dự án ( Build -> Rebuild Project) là những gì làm việc cho tôi. Cảm ơn bạn!
Francisco C.

Giải pháp này hiệu quả với tôi, điều cuối cùng về các mô-đun và sử dụng đường dẫn đầu ra. Cảm ơn.
Mohammad Ganji

Là một giải pháp tuyệt vọng hơn, xóa tệp .idea và mở lại dự án. Bạn sẽ mất một số cấu hình / cài đặt, tuy nhiên.
Aaron

Đặt <project-root>/src/test/javalàm gốc kiểm tra, và Build -> Rebuild Projectlàm việc cho tôi. Ngoài ra khi các lớp chứa các bài kiểm tra được đóng gói với tên gói bắt đầu bằng java.*, tôi đã nhận được Bảo mật ngoại lệ.
Master Master

Vấn đề là sự phụ thuộc đã lỗi thời
dellasavia

17

Điều này cũng có thể xảy ra, nếu thư mục kiểm tra của bạn đã được nhập dưới dạng một mô-đun riêng (một hình vuông nhỏ được hiển thị trên biểu tượng thư mục trong chế độ xem dự án).
Loại bỏ mô-đun bằng cách chọn thư mục thử nghiệm trong chế độ xem dự án và nhấn DEL.
Sau đó bắt đầu bài kiểm tra của bạn.
Nếu hộp thoại bật lên xuất hiện với thông báo lỗi, không có mô-đun nào được chọn, hãy chỉ định mô-đun gốc của bạn từ danh sách thả xuống.


3
Đây cũng là vấn đề của tôi (vuông trên thư mục kiểm tra - sẽ không biết điều đó có nghĩa là gì!); để khắc phục, tôi đã mở cấu hình chạy và thấy rằng "Sử dụng đường dẫn lớp của mô-đun:" đã được đặt thành mô-đun thử nghiệm. Tôi đã thay đổi nó thành đường dẫn lớp của dự án của tôi và nó hoạt động tốt. Cảm ơn bạn đã chỉ ra gotcha "mô-đun riêng biệt"!
Redboots

Đây chính xác là thứ đã xảy ra với tôi. Tôi đã tạo một dự án Spring bằng start.spring.io và mở nó. Sau đó, tôi khởi động SpringBootTest và gặp phải lỗi "Không tìm thấy lớp:" ... "Bộ kiểm tra trống". Sau khi làm theo giải pháp của bạn và nhấn nút XÓA trên thư mục kiểm tra và tạo lại cấu hình chạy, mọi thứ đều ổn. Gợi ý bổ sung: Khi nhấn nút xóa trên thư mục kiểm tra, một hộp thoại xuất hiện thông báo như "không có tệp nào sẽ bị xóa". Vì vậy, không sợ nhấn nút.
kleenxcoder

14

Tôi đã có một vấn đề tương tự sau khi bắt đầu một dự án IntelliJ mới. Tôi thấy rằng "đường dẫn đầu ra biên dịch mô-đun" cho mô-đun của tôi không được chỉ định đúng. Khi tôi chỉ định đường dẫn trong "đường dẫn đầu ra biên dịch" của mô-đun đến vị trí thích hợp, vấn đề đã được giải quyết. Đường dẫn đầu ra biên dịch được gán trong cài đặt Project. Trong Mô-đun, chọn mô-đun liên quan và chọn tab Đường dẫn ...

Tab đường dẫn trong Cài đặt dự án | Hộp thoại mô-đun

ảnh chụp màn hình

... Tôi đã gửi đầu ra trình biên dịch đến một thư mục có tên "đầu ra" có trong thư mục Dự án mẹ.


14

Trong trường hợp của tôi, tôi đã có mọi thứ khác ở đúng nơi, nhưng tôi đang làm việc trên một thư viện java với kotlin . Tôi chỉ quên áp dụng plugin:

apply plugin: 'kotlin-android'

Và bây giờ nó hoạt động như mong đợi.


1
Tương tự cho tôi. Thật khó chịu khi không có tùy chọn Kotlin khi tạo mô-đun.
Rupert Rawnsley

11

Vì vậy, vấn đề của tôi ở đây là với tên thư mục. Tôi đã gọi thư mục mã Lớp học 2016/2017, mà IntelliJ không thích. Chỉ cần xóa dấu gạch chéo (hoặc ký tự vi phạm khác trong đường dẫn), nhập lại dự án và bạn sẽ ổn thôi!


Điều này đã giúp tôi. Đối với những người khác, tôi đã có thư mục trong Dropbox. Khi tôi chuyển nó ra khỏi Dropbox và nhập lại, vấn đề đã biến mất.
Mick Sear

Câu trả lời này xứng đáng với giải thưởng hòa bình cao quý!
Ali Abbas Jaffri

7

Trong Android Studio 3.0 +, đôi khi các kiểm tra giao diện người dùng được hiểu theo cách nào đó là kiểm tra đơn vị và nó không yêu cầu lựa chọn triển khai mục tiêu. Bạn có thể đi đến Chỉnh sửa cấu hình và đánh dấu nó là một thử nghiệm tích hợp và nó sẽ bắt đầu hoạt động


Ngoài ra, trên Android Studio 3.0.1, nút chạy bên cạnh kiểm tra không hoạt động. Sau khi cập nhật lên 3.1 canary 8, nó đã bắt đầu hoạt động trở lại.
Marc

6

Tôi đã có cùng một vấn đề và xây dựng lại / vô hiệu hóa bộ đệm, vv không hoạt động. Có vẻ như đó chỉ là một lỗi trong Android Studio ...

Một giải pháp tạm thời là chạy các bài kiểm tra đơn vị của bạn từ dòng lệnh với:

./gradlew test

Xem: https://developer.android.com/studio/test/command-line.html


6

Nếu dự án có vấn đề biên dịch thì các bài kiểm tra có thể không chạy. Vì vậy, trước hết hãy xây dựng dự án như Build -> Build Project. Sau khi biên dịch thành công chạy lại bài kiểm tra.

Nếu không có gì hoạt động thì chỉ cần đóng cửa sổ dự án và xóa dự án và nhập lại dưới dạng dự án Gradle / Maven sẽ thiết lập mọi thứ cho bạn bằng cách ghi đè các tệp đã tạo IntelliJ. Điều này sẽ xóa bộ đệm không hợp lệ được tạo.

Bạn cũng có thể làm mất hiệu lực bộ đệm.

File -> Invalidate Caches/Restart


5

Tôi đã có cùng một câu hỏi khi tôi nhập một số jartừ Maven, và sau đó, gây ra empty-test-suitelỗi.

Trong trường hợp của tôi, đó là vì maven đặt lại các tập tin mô-đun. Mà tôi đã giải quyết bằng cách xóa cấu hình mặc định của mình:

  1. Cấu trúc dự án mở với shift- ctrl- alt- sphím tắt

Ảnh chụp màn hình của PModules Nguồn

  1. Nhìn vào Mô-đun> Nguồn và điền vào gói Nguồn hoặc Gói thử nghiệm.

5

Tôi gặp vấn đề tương tự (Android Studio 3.2 Canary 4) và tôi đã thử hầu hết các đề xuất được mô tả trong các câu trả lời khác - mà không thành công. Lưu ý điều này xảy ra sau khi tôi chuyển tập tin từ testđể androidTestthư mục. Nó vẫn được hiển thị trong các cấu hình chạy dưới dạng thử nghiệm thay vì thử nghiệm cụ.

Cuối cùng tôi đã tạo ra một tập tin mới:

  1. Tạo lớp kiểm tra dụng cụ mới với tên khác nhau.
  2. Sao chép tất cả các mã từ lớp học của bạn.
  3. Chạy nó
  4. Xóa lớp cũ.
  5. Đổi tên lớp mới thành tên mong muốn.

Ý tưởng không tồi =) Cảm ơn!
Andrew Grow

5

Thật thú vị, tôi đã phải đối mặt với vấn đề này nhiều lần vì những lý do khác nhau. Ví dụ: Vô hiệu hóa bộ đệm và khởi động lại cũng có ích.

Cuối cùng tôi đã sửa nó bằng cách sửa đường dẫn đầu ra của mình trong Tệp -> Cấu trúc dự án -> Dự án -> Đầu ra trình biên dịch dự án thành: perfect_path_of_package / out

ví dụ: / Users / Random-guys / myWorkspace / src / DummyProject / out


Đây là cái này làm cho bộ thử nghiệm của tôi chạy! Cảm ơn!
Frank

4

Reimport dự án hoặc mô-đun có thể giải quyết vấn đề. Tôi đã thực hiện vấn đề này bằng cách đổi tên gói khi phát triển. Nhưng đường dẫn rađường dẫn đầu ra thử nghiệm là đường dẫn cũ. Vì vậy, intellij không thể tìm thấy lớp học từ con đường cũ. Vì vậy, cách dễ nhất là sửa đường dẫn ra và kiểm tra đường dẫn đầu ra.

Cài đặt mô-đun Intellij


Vì một số lý do, đường dẫn dự án kế thừa không hoạt động với tôi trên MacO, bạn có biết tại sao nó có thể xảy ra không?
Johnny_D

@Johnny_D Bạn có chắc vấn đề của mình là do đổi tên gói không?
Bejond

3

Điều này cũng sẽ xảy ra khi mô-đun và / hoặc dự án-jdk của bạn không được cấu hình đúng.


Vui lòng làm rõ "cấu hình phù hợp" Tôi không nghĩ rằng điều này hữu ích cho người dùng với vấn đề này. Cảm ơn!
đánh trứng

3

Xóa .ideavà nhập lại dự án SBT đã giải quyết vấn đề này cho tôi.


Nó hoạt động sau khi xóa thư mục .idea và nhập lại dự án maven (y)
Amine Soumiaa

Điều này cũng tương tự đối với tôi. Tôi đã đi qua các đề xuất ở trên nhưng không có gì làm việc. Tôi đã xóa thư mục cơ sở .idea và các tệp .iml trong các mô hình con.
Dennis

3

Trong trường hợp của tôi, IntelliJ đã không biên dịch các nguồn kiểm tra vì một lý do lạ. Tôi chỉ cần sửa đổi cấu hình xây dựng và thêm mục tiêu maven clean test-compiletrong Before launchphần


Đã thử tất cả các cách trên, nhưng chỉ điều này mới giúp được :) Cảm ơn bạn!
Antenka

2

Trong trường hợp của tôi có một vấn đề với tên thử nghiệm :).

Nếu tên là: dummyNameTestthì không có bài kiểm tra nào được tìm thấy, nhưng trong trường hợp testDummyNamemọi thứ đều ổn


1

Tôi gặp vấn đề tương tự. Trong trường hợp của tôi, tôi đã có một số lớp kiểm tra trong một gói / thư mục bên ngoài thư mục chính. Nhưng khi tôi kiểm tra cấu hình Run, nó luôn cố gắng tìm các lớp bên trong thư mục chính (và không phải các gói của tôi nằm ngoài main). Vì vậy, nếu đó là trường hợp, bạn hoặc phải di chuyển các gói của bạn đến nơi cấu hình Run đang trỏ đến. Hoặc thay đổi cấu hình chạy để trỏ đến các gói của bạn.


1

Thử nghiệm của bạn có yêu cầu thiết bị Android (trình giả lập hoặc phần cứng) không?
Nếu vậy, nó được gọi là "thử nghiệm cụ" và nằm trong "tên mô-đun / src / androidTest / java /".
Nếu không, nó được gọi là "kiểm tra đơn vị cục bộ" và nằm trong "tên mô-đun / src / test / java"

https://developer.android.com/training/testing/start/index.html

Tôi đã gặp lỗi tương tự vì tôi đã viết một bài kiểm tra đơn vị cục bộ, nhưng nó đã được đặt trong thư mục cho các bài kiểm tra cụ. Di chuyển thử nghiệm đơn vị cục bộ sang thư mục "src / test / java" đã sửa nó cho tôi.


1

Đã nhận được cùng một lỗi. Thiết bị của tôi không được kết nối với studio android. Khi tôi kết nối với studio. Nó hoạt động. Điều này giải quyết vấn đề của tôi.


1

Có thể là do thư mục không được đặt làm nguồn kiểm tra, có thể được thực hiện thông qua Cài đặt mô-đun> Mô-đun.


1

Đối với tôi dự án được biên soạn bên ngoài dự án. Tôi chỉ thay đổi con đường. Để thay đổi đường dẫn (tôi đang sử dụng mac).

  • Đi đến Tệp -> Cấu trúc dự án
  • Đi đến Module bên trái.
  • Chọn Đường dẫn, chọn nút radio (sử dụng đường dẫn đầu ra biên dịch mô-đun)
  • Cung cấp đường dẫn đầu ra và đường dẫn đầu ra thử nghiệm bên trong dự án của bạn
  • Bỏ chọn Loại trừ đường dẫn đầu ra.
  • Đi tới Tệp -> Nhấp vào Bộ đệm ẩn không hợp lệ và khởi động lại

1

Trong trường hợp của tôi, vấn đề đã được khắc phục bằng cách đi vào build.gradlevà thay đổi

dependencies {
    testImplementation 'junit:junit:4.12'
}

đến

dependencies {
    testCompile 'junit:junit:4.12'
}

Điều này cũng giúp cho tôi, thật đáng ngạc nhiên. Có vẻ như nó buộc phải biên dịch lại. Đã thử một số lần dọn dẹp / bộ nhớ cache trước khi không có sự trợ giúp
Dieter Menne

Đối với những gì nó có giá trị, vấn đề đối với tôi đã được khắc phục như giải pháp tôi đề xuất ở trên. Tuy nhiên, lý do là tôi đã sử dụng một plugin không hỗ trợ lệnh 'triển khai'. Vì vậy, tôi sẽ đề nghị bạn có thể muốn xem liệu một số plugin của dự án của bạn có cập nhật hay không. Có lẽ cách tiếp cận tốt hơn sẽ là cập nhật plugin vì Gradle muốn loại bỏ lệnh "biên dịch"
bremen_matt

1

Tôi đã thử tất cả các giải pháp nhưng không ai trong số họ giúp đỡ. Cuối cùng, tôi chạy thử nghiệm trong chế độ gỡ lỗi và .... nó bắt đầu hoạt động. Có lẽ bộ nhớ cache của maven đã bị xóa. Thật khó để nói Nó hoạt động. Thửmvn test -X


1

Chỉ cần nhấp chuột phải vào nút phải của bạn trên tệp trong cửa sổ Dự án và chọn

"Chạy YourTest ".

Bây giờ mọi thứ chỉ bắt đầu ổn, có lẽ vì cấu hình chạy bị lỗi đang được xây dựng lại.


1

Điều này có thể xảy ra (ít nhất một lần đối với tôi;) sau khi cài đặt phiên bản mới của IntelliJ và các plugin IntelliJ chưa được cập nhật.

Bạn có thể phải tự làm Check for updates…từ menu Trợ giúp của IntelliJ.


1

Trong cấu trúc dự án Maven của bạn, src / main / java, nhấp chuột phải vào thư mục java và chọn tùy chọn Đánh dấu thư mục là -> Nguồn gốc

Tương tự làm tương tự với thư mục kiểm tra, vì vậy: src / test / java nhấp chuột phải vào thư mục java và chọn tùy chọn Đánh dấu thư mục là -> Kiểm tra nguồn gốc

Đã làm cho tôi :-)


0

Vấn đề tương tự ở đây khi sử dụng IDEA 15.0.6 và không có gì giúp được ngoại trừ khi tôi đổi tên gói thử nghiệm. Sau đó, tôi đổi tên nó thành tên ban đầu và nó vẫn hoạt động, vì vậy hành động đổi tên có thể đã xóa một số bộ đệm.


0

Đối với tôi đó là vì dự án của tôi đã được biên dịch vào một thư mục bên ngoài dự án. Trong các đường dẫn, các đường dẫn đầu ra là \ sản xuất \ project_name và \ test \ project_name đã đưa chúng vào C: \ sản xuất \ project_name. Thay đổi chúng thành đường dẫn đầy đủ của dự án cho phép các bài kiểm tra của tôi truy cập vào các tệp lớp.

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.