Chạy các bài kiểm tra đơn vị trong IntelliJ IDEA từ nhiều mô-đun cùng nhau


85

Làm cách nào để có thể chạy tất cả các bài kiểm tra từ hai hoặc nhiều mô-đun IDEA cùng một lúc?

Tôi đang sử dụng nhiều mô-đun và điều quan trọng là thường xuyên chạy tất cả các bài kiểm tra đơn vị và khi tôi chọn nhiều thư mục để chạy, không có tùy chọn 'chạy' trên menu ngữ cảnh nữa.

Câu trả lời:


113

Cách tốt nhất: (chỉnh sửa sau 3 năm)

Thậm chí có một cách tốt hơn để đạt được điều này.

  1. Chọn menu "Chạy" → "Chỉnh sửa Cấu hình ...". Nhấp vào dấu cộng màu xanh lá cây ở góc trên cùng bên trái và chọn JUnit.

  2. Chọn "Loại kiểm tra" thành "Mẫu" và nhập regexp này chính xác như bạn thấy: ^(?!.*IT$).*$(nó bắt đầu bằng dấu mũ ^và kết thúc bằng đô la $). Regexp này cho biết: tất cả các bài kiểm tra không hoàn thành với CNTT trong tên của chúng .

  3. Chọn "Tìm kiếm các bài kiểm tra" thành "Trong toàn bộ dự án". Thư mục làm việc nên được đặt thành thư mục làm việc mô-đun hàng đầu (nó phải được đặt theo mặc định).

  4. Nhập Tên cho bài kiểm tra của bạn như "Tất cả bài kiểm tra Đơn vị". Tôi cũng rất thích đánh dấu tùy chọn "Chia sẻ" để cấu hình này sau này không biến mất. Nhấp vào Áp dụng và OK.

Bạn có thể thử nghiệm với regexp này để phù hợp với nhu cầu của mình.

Câu trả lời ban đầu:

Nó có thể làm được, mặc dù nó không thoải mái.

  1. Chọn mô-đun đầu tiên, nhấp chuột phải vào test/javathư mục và "Chạy tất cả các thử nghiệm". Nó tạo ra cấu hình thử nghiệm.
  2. Chọn "Chỉnh sửa cấu hình" và chọn "Chia sẻ" trên cấu hình mới tạo để nó sẽ được lưu.
  3. Chọn mô-đun thứ hai, "Chạy tất cả các thử nghiệm" trên đó và cũng chọn "Chia sẻ" trên cấu hình này.
  4. Trong phần "Trước khi khởi chạy", hãy nhấp vào "+" và chọn "Chạy một cấu hình khác" và sau đó chọn cấu hình của mô-đun đầu tiên.

Bằng cách này, bạn chạy các cấu hình theo một trình tự và mọi cấu hình đều có một tab mới. Tuy nhiên, tốt hơn là không có gì.


Cảm ơn! Theo cách sạch sẽ nhất. Tự hỏi nếu có bất kỳ cách nào tốt hơn để đạt được điều này sau 3 năm :)
CoderSpinoza

Cảm ơn! Bạn đã tiết kiệm thời gian của tôi và cho đến nay đây vẫn là cách thông minh nhất mà tôi có thể tìm ra để giải quyết cả vấn đề tạo báo cáo nhiều phạm vi bảo hiểm và vấn đề người chạy hồ sơ hợp nhất trong một lần .
Fei

Tôi vừa mới sửa Anser của tôi với một giải pháp tốt hơn @CoderSpinoza
Tomasz Kalkosiński

10
Phiên bản cập nhật không quá tốt , nếu các trường hợp thử nghiệm của bạn sử dụng tài nguyên dành riêng cho mô-đun trong thời gian chạy của nó - tôi vẫn thích giải pháp gốc hơn.
Fei

Làm cách nào để lấy cấu hình này để tuân theo các phụ thuộc Gradle của tôi? Bây giờ, nó không thành công khi thiếu các lớp từ Guava. Khi chạy các bài kiểm tra của một mô-đun, nó hoạt động tốt.
Jorn

22

Bạn phải tạo một "Chạy cấu hình":

  1. Chuyển đến menu thả xuống ở trên cùng, ở bên phải của nút "Make" và nhấp vào nó
  2. Chọn "Chỉnh sửa cấu hình"
  3. Bây giờ hãy nhấp vào nút "+" để thêm cấu hình chạy mới và chọn JUnit
  4. Sau đó, khi định cấu hình "Run Configuration", bạn sẽ tìm thấy danh sách thả xuống "Loại kiểm tra", chọn "Tất cả các lớp trong thư mục"
  5. Chọn thư mục bạn muốn sử dụng làm thư mục gốc, bạn có thể chọn thư mục cấp cao nhất cho dự án của mình hoặc bất kỳ thư mục nào cho các mô-đun của bạn.
  6. Chọn mô-đun IntelliJ từ nơi chọn classpath (nó có thể là dự án cấp cao nhất nếu nó có classpath)

Cảm ơn vì mẹo, mặc dù nó không giải quyết được vấn đề. Cách hoàn hảo là chọn một số dirs, không chỉ một. Các giải pháp pertial là mô hình sử dụng, nhưng vẫn có thể chỉ mô hình gói, không phải là dirs ...
Wojtek Erbetowski

15
Trong "Loại thử nghiệm", chọn "Tất cả trong gói" và sau đó chọn hộp kiểm "Trong toàn bộ dự án". Điều đó sẽ chạy thử nghiệm trong tất cả các Mô-đun.
Martin Odhelius

5
Tôi muốn mỗi mô-đun chạy với dir mô-đun riêng của nó làm thư mục làm việc - điều đó dường như không khả thi, dường như chỉ sử dụng một dir mô-đun duy nhất cho toàn bộ.
bacar

@MartinOdhelius đó là giải pháp sạch nhất cho đến nay
Hemil

10

Chọn tất cả các mô-đun, nhấp chuột phải vào chúng và chọn chạy tất cả các bài kiểm tra. Thao tác này sẽ tạo một cấu hình có tên là "Whole Project" mà bạn có thể chạy lại bất kỳ lúc nào.

Tôi thấy câu trả lời này tốt hơn câu trả lời được chấp nhận bởi vì câu trả lời này chạy các bài kiểm tra đơn vị riêng cho từng mô-đun. Nếu các trường hợp thử nghiệm của bạn sử dụng tài nguyên dành riêng cho mô-đun trong thời gian chạy của nó thì cách tốt nhất của câu trả lời được chấp nhận sẽ không hoạt động.

Chọn tất cả các mô-đun

Chọn tất cả các mô-đun

Nhấp chuột phải và chọn chạy tất cả các thử nghiệm

Nhấp chuột phải và chọn chạy tất cả các thử nghiệm

Nhận cấu hình chạy mới

Nhận cấu hình chạy mới


Chỉ cần chọn nhiều hơn một mô-đun trong bước đầu tiên là đủ.
user7610

2
Theo tôi đây nên là câu trả lời được chấp nhận. Sự bảo lưu duy nhất tôi có là sử dụng thuật ngữ "dễ nhất". Thật không may, không có gì dễ dàng về cấu hình chạy với Intellij. Có nhiều cách để thực hiện các tác vụ đơn giản với các cấu hình và thường chỉ một cách, nếu có. Vì vậy, nhiệm vụ của bạn thường là lặp lại tất cả các tùy chọn khác nhau để tìm kiếm tùy chọn phù hợp. Không dễ dàng chút nào.
David Sackstein

Điều này chạy tất cả các bài kiểm tra trong dự án (Toàn bộ dự án), mặc dù tôi đang chọn một phần nhỏ của các mô-đun. Đây không phải là điều tôi muốn. Trong trường hợp của tôi, tất cả các mô-đun tôi muốn chạy thử nghiệm để chia sẻ một gói chung, vì vậy tôi có thể chỉnh sửa cấu hình 'Toàn bộ dự án' kết quả và thêm Gói, bộ lọc để chạy thử nghiệm chỉ cho tập hợp con các mô-đun.
Albert Vila Calvo

5

Đối với tôi cả hai giải pháp đều không hoạt động hoặc không hoạt động như mong đợi.

Đối với tôi, tôi có 3 mô-đun. Các phụ thuộc mô-đun của tôi trông như thế này

Bản trình bày -> Miền -> Dữ liệu

Tôi chỉ muốn thực hiện tất cả các bài kiểm tra cùng nhau. Vì vậy, tôi đã nghĩ ra phương pháp 'Phụ thuộc trên toàn mô-đun'

Cài đặt của tôi trông như thế này:

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


2

Điều này làm việc cho tôi cho một dự án với nhiều mô-đun.

Tạo cấu hình chạy / gỡ lỗi JUnit mới. Loại thử nghiệm: 'Tất cả trong gói' Tìm kiếm các thử nghiệm: 'Toàn bộ dự án'

Bạn cũng sẽ phải chỉ định một thư mục làm việc.


Đó là những gì tôi đã làm.
miva2

1

Một trường hợp khác không quá rõ ràng là khi cần bảo hiểm mã cho nhiều hơn một dự án. Giải pháp đơn giản sẽ là chọn nhiều dự án và chạy tất cả các bài kiểm tra đơn vị trong chúng cùng một lúc. Hóa ra, các bài kiểm tra đơn vị có thể không thành công nếu classpath thay đổi và IntelliJ có chính xác một mục nhập classpath cho mỗi cấu hình chạy. Trong trường hợp này, chạy các bài kiểm tra đơn vị trên các dự án một cách tuần tự thực sự là đủ. Đó là bởi vì vào cuối mỗi lần chạy, IntelliJ (2017.2.5 Community Edition) sẽ hỏi liệu vùng phủ sóng đã thu thập có nên thay thế hay nên được thêm vào số liệu thống kê vùng phủ sóng đã thu thập trước đó hay không.

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.