Chạy một thử nghiệm JUnit duy nhất trong Eclipse


85

Nếu tôi có một bộ thử nghiệm với nhiều bài kiểm tra, khi tôi cố chạy một bài kiểm tra đơn vị, từ menu ngữ cảnh của trình chỉnh sửa mã hoặc từ chế độ xem JUnit, nó dường như nhấn mạnh vào việc luôn chạy toàn bộ bộ, thay vì thử nghiệm đơn lẻ. Có cách nào để vô hiệu hóa để thay đổi hành vi này để tôi có thể yêu cầu chạy nó và chỉ điều đó, thử nghiệm.


11
Sẽ rất tốt nếu bạn chọn câu trả lời đúng nhất bằng cách đánh dấu vào dấu màu xanh lá cây bên cạnh câu trả lời.
evalda

Câu trả lời:


96

Trong trình khám phá gói mở ra lớp. Nó sẽ hiển thị cho bạn tất cả các phương pháp. Nhấp chuột phải vào một phương pháp bạn muốn chạy, sau đó chọn Run As -> JUnit từ menu ngữ cảnh (vừa được thử nghiệm với Eclipse 3.4.1). Cũng chọn "Chạy" trên một mục duy nhất trong chế độ xem kết quả JUnit để chạy lại thử nghiệm hoạt động theo cách tương tự.


3
Thật không may, điều này chỉ hoạt động cho các phương pháp kiểm tra được thực hiện trực tiếp trong lớp đó. Nó không hoạt động đối với các phương thức @Test được kế thừa.
Christopher Barber

1
Lưu ý rằng có vẻ như bạn phải nhấp vào tên phương thức. Nhấp vào bên trong phương thức sẽ chạy toàn bộ lớp. (Hoặc ít nhất đó là cách nó hành xử với tôi.)
emragins

Nó chỉ hoạt động từ một "trình khám phá gói" cụ thể này, nó còn hơn cả sự bất hạnh khi nhanh chóng tìm ra một phương pháp mà bạn muốn thử nghiệm. Và thậm chí, trình gỡ lỗi kết hợp để bỏ qua các phương pháp khác - điều này làm tốn thêm thời gian. Phải có một cách tốt hơn ...
Macilias

và nó cũng mong manh ... bây giờ nhật thực quyết định không bỏ qua các bài kiểm tra khác khi chạy theo cách này :(
Macilias

26

Cách nhanh nhất mà tôi biết:

  1. Nhấn Ctrl+ Shift+ (di chuyển con trỏ đến khai báo phương thức hiện tại),
  2. nhấn Alt+ Shift+ x(hoặc dđể gỡ lỗi) rồi nhấn t(phím nóng để "Chạy thử nghiệm JUnit" ),
  3. kiểm tra kết quả thử nghiệm,
  4. nhấn Alt+ để quay lại dòng mã trước đó.

Nếu bạn muốn chạy tất cả các bài kiểm tra, bạn có thể bỏ qua bước 1 & 4.


13

Trong Eclipse 3.5, bạn có thể khắc phục điều này bằng cách thay đổi trình chạy thử nghiệm thành JUnit 3. Điều này sẽ chỉ hoạt động đối với các thử nghiệm JUnit 3, không phải các thử nghiệm JUnit 4. Bạn có thể thay đổi trình chạy thử bằng cách thực hiện như sau:

  1. Nhấp chuột phải vào một trong các phương pháp kiểm tra trong Trình khám phá phác thảo
  2. Chọn Run As -> Run Configurations
  3. Trên tab 'Kiểm tra', chọn 'Chạy một bài kiểm tra duy nhất'
  4. Trong trình đơn thả xuống Test Runner, chọn 'JUnit 3'

Nó cũng có thể hoạt động trong các phiên bản khác.


Tốt cuộc gọi! Thay đổi "Test Runner" thành "JUnit 3" trong hộp thoại cấu hình chạy đã làm việc với tôi trong Eclipse 3.6.0 (Helios). Bây giờ tôi có thể chạy một phương thức duy nhất trong thử nghiệm JUnit. FWIW, tôi chưa bao giờ gặp sự cố khi chạy các lớp thử nghiệm JUnit 3 hoặc 4 riêng lẻ .
Adam Monsen,

Hoàn hảo, điều này cũng làm việc cho tôi. Câu trả lời ở trên này đã không mặc dù nó có vẻ có nhiều ủng hộ hơn.
dreza

12

Điều này có thể thực hiện được trong Eclipse Indigo với JUnit 4.8.2. Bạn nhấp chuột phải vào phương pháp bạn muốn kiểm tra từng đơn vị trong Outlinengăn và chọn Run As -> JUnit Test.

Bạn thậm chí có thể nhấp chuột phải có chọn lọc vào tên Phương pháp thử nghiệm trong trình chỉnh sửa nguồn và chọn Run As -> Junit Test.


1
có vẻ như sẽ kiểm tra trường hợp thử nghiệm cụ thể đó. Tuy nhiên, sau đó, nó vẫn tiếp tục với các trường hợp thử nghiệm khác.
lwpro2

@ lwpro2 Bạn phải sử dụng JUnit 4 (chú thích) để kiểm tra một trường hợp thử nghiệm. JUnit 3 (mở rộng TestCase) sẽ vẫn chạy tất cả các thử nghiệm liên quan.
AnthonyW

1
wulfgar.pro Tôi đã cho @ lwpro2 biết rằng nếu bạn đang chạy thử nghiệm JUnit của mình với một Á hậu JUnit 4 (vì ví dụ: bạn đang sử dụng JUnit 4.8.2) YET thử nghiệm của bạn vẫn mở rộng TestCase, bạn sẽ không thể chạy một tự kiểm tra. Bạn phải sử dụng bộ chạy JUnit 3 hoặc chuyển đổi thử nghiệm của mình sang sử dụng chú thích.
AnthonyW

cảm ơn vì các ý kiến. Tuy nhiên, tôi đang sử dụng Junit4, với SpringJunit4ClassRunner. Dù sao, không phải là một vấn đề lớn. bình luận tắt chú thích là nhanh chóng.
lwpro2

câu trả lời này là đơn giản nhất
Jackson Tale

9

Không sử dụng Strg+ F11mà sử dụng phím nóng Alt+ Shift+ X-> T.
Sau đó, Eclipse sẽ thực thi tệp đang mở hiện tại dưới dạng thử nghiệm JUnit. Nút phát màu xanh lục sẽ chỉ chạy Cấu hình Chạy được chọn cuối cùng.

Đối với tôi, nó hoạt động tốt với Alt+ Shift+ X-> T.


Cảm ơn. Nhưng giả sử bạn đang làm việc trên một lớp đang được kiểm tra bằng bài kiểm tra đơn vị. Khi bạn sửa đổi lớp, làm thế nào để bạn chạy UnitTest tương ứng của nó mà không chuyển cửa sổ sang tệp UnitTest?
bibstha

@bibstha Bạn có thể sử dụng Ctrl + 3 rồi gõ "chạy lại". Điều này cho phép bạn chạy lại trường hợp thử nghiệm JUnit cuối cùng. Trong Window-> Preferences-> General-> Keys, bạn có thể gán một phím tắt riêng cho hành động này. Ctrl + Shift + F11 sẽ phù hợp, theo ý kiến ​​của tôi.
touristda

9

Tôi sẽ thêm vào những cái khác bằng cách đưa vào một bàn phím hiệu suất cao cách duy nhất cho phép bạn gỡ lỗi (phương pháp) kiểm tra đơn vị.

Di chuyển con trỏ của bạn đến tên phương thức bằng cách sử dụng

  • Ctrl+ Shift+ Uphoặc
  • Ctrl+ Shift+ Downhoặc
  • Ctrl+ osau đó nhập tên của phương thức

Khi con trỏ của bạn ở trên tên phương thức (hoặc ngay trước nó):

  • Alt+ Shift+ D-> T(Gỡ lỗi)
  • Alt+ Shift+ X-> T(Chạy)

Sau khi chạy thử nghiệm, bạn có thể quay lại vị trí con trỏ của bạn bằng cách thực hiện:

Alt+Back

Bạn gần như nhận được hành vi giống như REPL bằng cách:

Ctrl+ Shift+ UpAlt+ Shift+ X-> TAlt+Back

Bạn cũng có thể nhanh chóng đặt điểm ngắt:

Ctrl+ Shift+B


3

Nhấp chuột phải vào vị trí nào đó trên tên phương pháp kiểm tra trong tệp và chọn "Chạy" -> "Kiểm tra Junit". Tôi làm điều đó mọi lúc với Kepler và JUnit 4.


2

Tôi đã gặp vấn đề tương tự mà những người khác đã gặp phải khi sử dụng trình chạy thử nghiệm Eclipse 3.4.1 và JUnit 4 - không thể chạy thử nghiệm đơn lẻ. Nhưng tôi đã tìm thấy một gợi ý ở một nơi khác giải quyết được vấn đề. Lớp thử nghiệm của tôi vẫn đang mở rộng junit.framework.TestCase. Khi tôi ngừng mở rộng TestCase, mọi thứ hoạt động tốt và tôi có thể chạy các thử nghiệm JUnit đơn lẻ với trình chạy thử nghiệm JUnit 4. Tất nhiên, tôi cần các chú thích JUnit 4 sử dụng nhập tĩnh cho các phương thức khẳng định, nhưng tôi đã làm điều đó - tôi chỉ chưa loại bỏ kế thừa TestCase.


1

Nếu bạn có nhiều bài kiểm tra trong nhiều tệp và bạn chỉ muốn chạy các bài kiểm tra trong một tệp cụ thể, bạn có thể nhấp chuột phải vào tệp đó và chọn run as -> junit test. Bây giờ, nếu bạn chỉ muốn chạy một bài kiểm tra, được chứa trong một tệp có nhiều bài kiểm tra, tôi đoán là (tôi chưa cài đặt eclipse ở đây) rằng dạng xem Outline sẽ liệt kê tất cả các phương pháp kiểm tra cho một tệp và bạn có thể sẽ nhấp chuột phải vào một phương pháp kiểm tra duy nhất và thực hiện nó như một bài kiểm tra JUNit.

Hy vọng nó giúp.


1

Chỉ chạy một phương pháp thử nghiệm.
Trong (trình khám phá gói hoặc trình khám phá dự án) mở ra lớp. Nó sẽ hiển thị cho bạn tất cả các phương pháp. Nhấp chuột phải vào một phương pháp bạn muốn chạy, sau đó chọn Run As -> JUnit từ menu ngữ cảnh.
nhập mô tả hình ảnh ở đây


0

Đối với tôi, nó cũng không hoạt động trong Eclipse 3.4.2, mặc dù nó đã hoạt động trong các bản phát hành trước (tôi đã thử chạy phương pháp đơn từ trình khám phá gói và kiểm tra đơn lẻ từ chế độ xem junit)


Chạy một phương pháp / thử nghiệm duy nhất từ ​​Package Explorer hoạt động tốt đối với tôi trong Eclipse 3.4.2.
Volker Stolz 17/09/09

0

Tôi đồng ý với quan điểm về việc 3.4.2 không còn hoạt động như cách nó đã làm trong các phiên bản trước. Trước khi bạn có thể nhấp chuột phải vào một bài kiểm tra duy nhất trong một nhóm các bài kiểm tra từ chế độ xem JUnit và chỉ thực hiện bài kiểm tra đó. Trong phiên bản mới nhất, nó khẳng định luôn chạy tất cả chúng. Được cấp, chế độ xem sẽ chạy thử nghiệm mà bạn đã nhấp vào trước tiên và kết xuất phần còn lại trong một bản tổng hợp có tên "Thử nghiệm chưa được lấy gốc". Nếu ai đó nhận ra điều này, tôi muốn biết cách vượt qua nó.


0

Đọc một số nhận xét ở đây, có vẻ như bạn có thể quan tâm đến việc chạy các bài kiểm tra cho mã bạn thay đổi khi bạn thay đổi nó, mà không mất tập trung vào mã bạn đang làm việc. Có một plugin nhật thực để làm điều đó. Xem infinitest .

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.