2010-05-04 14 views
7

tôi đang phải đối mặt với một vấn đề mà kiểm tra/tài nguyên không được chọn, nhưng thay vào đó chính/tài nguyên jar được chọnJunit không chạy tập tin src/test/resources. Đối với tập tin theo yêu cầu của một số phụ thuộc jar

Kịch bản là như sau: myproject src/kiểm tra/nguồn lực --- có cấu hình .xml w cần được abc.jar cần, đây là một phụ thuộc trong Myproject.

Khi chạy trường hợp thử nghiệm cho Myproject tải tệp config.xml của abc.jar thay vì thử nghiệm/tài nguyên của tôi. - Tôi cần biết thứ tự mà tài nguyên chọn maven. - Hoặc cố gắng không thể thực hiện.

Cảm ơn.

+0

Câu hỏi lặp lại: Phụ thuộc dự án của tôi abc.jar class loadFile.java tải tệp config.xml dưới abc src/main/resource. Khi tôi chạy trường hợp thử nghiệm Myproject .xml loadFile.java nên chọn. 1. abc jar chính/tài nguyên hoặc 2. Myproject tase/resource –

Trả lời

13

Tệp từ target/tests-classes (theo mặc định) được bao gồm tại bắt đầu đường dẫn thử nghiệm. Vì vậy, khi chạy thử nghiệm, các tài nguyên từ cả hai số src/main/resourcessrc/test/resources đều trên đường dẫn lớp nhưng sau đó có quyền ưu tiên hơn so với trước đây. Nói cách khác, nếu bạn có một config.xml trong src/main/resources và trong src/test/resouces:

  • src/main/resources/config.xml sẽ được đóng gói trong các vật phẩm thức nhưng
  • src/test/resources/config.xml sẽ được sử dụng khi chạy thử nghiệm

Nếu đây không phải là những gì bạn đang trải qua, phải có một sai lầm ở một nơi khác.

Nếu bạn muốn thuyết phục bản thân, bạn có thể chạy mvn -X test, thao tác này sẽ in Đường dẫn thử nghiệm. Và bạn sẽ thấy rằng classpath này được làm bằng (theo thứ tự này):

  • target/test-classes
  • target/classes
  • jar dự án
  • sự phụ thuộc (bao gồm cả những người có một phạm vi kiểm tra)
+0

Cảm ơn bạn đã trả lời ... hiển thị của nó là wat u đề cập đến. Điều này có nghĩa là tệp config.xml trong các lớp thử nghiệm sẽ nhận được tùy chọn trên tệp config.xml trong một số gói phụ thuộc. Nhưng điều này không xảy ra trong thùng phụ thuộc trường hợp của tôi đang tải .xml của riêng nó thay vì thử nghiệm/tài nguyên của tôi. Wat tôi có thể làm để theo dõi nó. –

+0

@ saddy-dj Ai đang tải 'config.xml' chính xác? Một trường hợp thử nghiệm hoặc một lớp học của một JAR?Tôi nghĩ rằng tôi bắt đầu hiểu những gì có thể là nguyên nhân của vấn đề ... –

+0

lớp của một JAR đang tải nó ... –

0

Tôi đã gặp sự cố tương tự với dự án của mình. Vì vậy, tôi có TestClassA trong ProjectA gọi ClassB từ ProjectB. ClassB sử dụng một tệp trong src/test/resources. Đối với một số lý do tập tin này không được sử dụng. Tôi phát hiện ra rằng ProjectA có một tập tin cùng tên trong src/test/resources của nó.
Vì vậy, tóm lại, mặc dù ClassB ở trong ProjectB, nó đang sử dụng src/test/resources của ProjectA vì đó là dự án mà thử nghiệm bắt nguồn.

Các vấn đề liên quan