2012-07-17 37 views
6

Tôi phải chạy thử nghiệm jbehave (tự động) trong tre. Khi chạy thử nghiệm, tôi sẽ tạo ra một số tệp xml tương thích junit để tre có thể hiểu được. Tất cả các thử nghiệm jbehave được chạy như một phần của một kịch bản, bởi vì tôi cần chạy các kiểm tra jbehave trong một màn hình hiển thị riêng biệt (hãy nhớ đây là các kiểm tra trình duyệt tự động). Ví dụ kịch bản như sau.Tất cả các thử nghiệm được thông qua, nhưng việc xây dựng bằng tre thất bại với một tuyên bố "Không tìm thấy thử nghiệm thất bại, một lỗi biên dịch có thể xảy ra".

Ex:

export DISPLAY=:0 && xvfb-run --server-args="-screen 0, 1024x768x24" 
mvn clean integration-test -DskipTests -P integration-test -Dtest=* 

tôi có thêm một junit nhiệm vụ phân tích cú pháp mà chỉ vào tạo junit file xml tương thích. Vì vậy, khi xây dựng tre chạy và ngay cả khi tất cả các bài kiểm tra vượt qua, tôi nhận được xây dựng màu đỏ với thông báo "Không tìm thấy kiểm tra thất bại, một lỗi biên dịch có thể xảy ra."

Ai đó có thể giúp tôi về vấn đề này.

Trả lời

14

Tập lệnh xây dựng của bạn có thể đang tạo báo cáo thử nghiệm thành công, nhưng một (hoặc cả hai, có thể) nhiệm vụ của bạn không thành công. Điều đó có nghĩa là lỗi có thể xảy ra sau khi các thử nghiệm của bạn hoàn tất. Kiểm tra lỗi nhật ký xây dựng của bạn. Bạn cũng có thể thử đăng nhập vào máy chủ Bamboo của bạn (như người dùng tre) và chạy các lệnh bằng tay.

Tôi đã nhìn thấy thông báo này trong quá khứ khi nhiệm vụ kiểm tra của chúng tôi bị lỗi nửa chừng chạy thử, dẫn đến một báo cáo không đúng định dạng mà Bamboo đã bỏ qua và một loạt các báo cáo thành công.

* Kiểm tra nhật ký xây dựng để đảm bảo rằng các thử nghiệm của bạn thực sự đang chạy. Nếu mvn clean không dọn sạch thư mục báo cáo thử nghiệm, Bamboo có thể chỉ phân tích các báo cáo thử nghiệm cũ.


EDIT: (để đáp ứng với các liên kết Kishore của)

Dường như công việc của bạn để giết Xvfb là những gì đang gây ra xây dựng để thất bại.

18-Jul-2012 09:50:18 Starting task 'Kill Xvfb' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script' 

18-Jul-2012 09:50:18  
Beginning to execute external process for build 'Functional Tests - Application Release Test - Default Job' 
... running command line: 
/bin/sh 
    /tmp/FUNC-APPTEST-JOB1-91-ScriptBuildTask-4153769009554485085.sh 
... in: /opt/bamboo-home/xml-data/build-dir/FUNC-APPTEST-JOB1 
... using extra environment variables: 

<..snip (no meaningful output)..> 

18-Jul-2012 09:50:18 Failing task since return code was 1 while expected 0 

18-Jul-2012 09:50:18 Finished task 'Kill Xvfb' 

Tập lệnh "Kill Xvfb" của bạn làm gì? Bạn đang thử một cái gì đó như pkill -f "[x] vfb"? pkill -f âm thầm trả về số không nếu nó không thể khớp biểu thức với bất kỳ quá trình nào.

+0

Choover, cảm ơn bạn đã trả lời. Tôi không thấy bất kỳ lỗi nào có thể xảy ra từ bất kỳ nhiệm vụ tre nào của tôi.Có chắc chắn một số dấu vết ngăn xếp được gây ra từ ứng dụng của tôi. Vui lòng xem qua https://il.openmrs.org/browse/FUNC-APPTEST/latest và đăng nhập https://ci.openmrs.org/download/FUNC-APPTEST-JOB1/build_logs/FUNC-APPTEST- JOB1-89.log để biết thêm chi tiết. –

+0

xin lỗi, không đủ dung lượng trong hộp nhận xét để đăng xuất nhật ký, vì vậy tôi đã kết thúc chỉnh sửa bài đăng của mình - xem ở trên^ – choover

2

Hóa ra là một bản sửa lỗi đơn giản.

Hành vi chung của tre là quét toàn bộ nhật ký và xem bất kỳ mã lỗi nào (1). Đối với cấu hình cụ thể này tôi đã có một số 6 kịch bản trong đó một trong số đó là để giết xvfb (bộ đệm khung). Đối với một số lý do máy chủ không thể giết xvfb và nhiệm vụ đó đã trả lại mã lỗi. Bởi vì điều này, mặc dù tất cả các bài kiểm tra được thông qua, tre nhận được một trong các mã lỗi này từ các nhiệm vụ trước đó và xây dựng đã thất bại.

Sửa lỗi hiện tại là xóa tác vụ giết xvfb và bản dựng đã chuyển sang màu xanh lục! \ o /.

+0

Ồ, đó chính xác là những gì tôi đưa vào phản hồi cho nhận xét của bạn. * thở dài * – choover

+0

Tuyệt! cảm ơn rất nhiều vì đã bỏ ra một chút thời gian và tìm kiếm đầu ra log :) –

+0

đó chính xác là những gì @choover đưa ra trong phản ứng của anh ấy với bình luận của bạn. tsc tsc tsc Bạn sẽ ký câu trả lời đó là câu trả lời chính xác. – Miere

4

Giải pháp của tôi là để thực hiện một 'kịch bản' nhiệm vụ:

#!/bin/bash 
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0 

nào luôn lối thoát hiểm với tình trạng 0.

này được vì mã PHP sniffer trạng thái thoát trở lại 1 khi chỉ có 1 mã hóa vi phạm (cảnh báo/error) được tìm thấy, nguyên nhân gây ra lỗi.

+0

Giải pháp tương tự cũng làm việc với tôi trên máy chủ Windows build của chúng tôi. Phải sử dụng đường ống cho lối ra thay vì đường mới, nếu không lối ra 0 sẽ không được gọi sau khi chạy nghiệp! –

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