2008-12-01 27 views
8

Tôi đang tìm một giải pháp hoàn chỉnh cho một "tòa nhà" tự động và thử nghiệm ứng dụng PHP. Tôi đã xem qua PhpUnderControl, một giải pháp để chạy các bản dựng ứng dụng tự động được tạo ra xung quanh Cruise Control.Kiểm soát hành trình và các dự án PHP

Thật không may PhpUC vẫn đang trong giai đoạn phát triển ban đầu và tôi không thể làm cho nó hoạt động trên hộp cửa sổ.

Sau vài giờ thử, tôi đã từ bỏ phpUc. Tôi đang cố gắng sử dụng Cruise Control một mình. Nó hoạt động tốt khi nói đến chạy toàn bộ quá trình xây dựng. Mỗi lệnh tôi đưa vào tệp xây dựng của kiến ​​đều chạy ok.

Vấn đề duy nhất tôi có là Cruise Control sẽ không hợp nhất nhật ký từ chạy xây dựng thành tệp nhật ký dự án, do đó tôi không thể thấy bất kỳ kết quả xây dựng nào. Nhưng dự án mẫu trong kiểm soát hành trình hoạt động ok, các bản ghi cho các bản xây dựng được sáp nhập vào nhật ký của dự án.

Tôi tự hỏi liệu Cruise Control có thể hợp nhất nhật ký được tạo bởi PHPUnit (ở định dạng XML) vào nhật ký dự án hoặc chỉ hoạt động cho các tệp JUnit của Java mà thôi. Có ai đã cố gắng sử dụng Cruise Control một mình trên một dự án php?

đây là phần nhật ký của cấu hình của dự án (config.xml):

<log dir="logs/${project.name}"> 
<merge dir="projects/${project.name}/build/logs/"/> 
</log> 

là + đường dẫn sao chép dán này thay đổi từ dự án mẫu Cruise Control của.

Bất kỳ ý tưởng nào bất kỳ ai vui lòng.

Cảm ơn

Trả lời

2

Tôi tự hỏi nếu Cruise Control là thể hợp nhất các bản ghi được tạo ra bởi PHPUnit (ở định dạng XML) vào log dự án hoặc là nó làm việc cho các tập tin JUnit Java chỉ.

CC sẽ hợp nhất mọi tệp xml mà bạn trỏ vào. Khi bạn nói việc hợp nhất các tệp không hoạt động, bạn có gặp lỗi khi hợp nhất chúng hay không và kết quả kiểm tra không hiển thị trên trang kết quả? Nếu bạn nhìn vào tệp nhật ký xây dựng, bạn có thấy kết quả thử nghiệm được hợp nhất không?

Một vấn đề bạn có thể thấy là các tệp .xsl trong ứng dụng báo cáo jsp đang mong đợi kết quả kiểm tra nằm trong cấu trúc mà tác vụ kiến ​​junit tạo ra. Điều có thể xảy ra là bạn đang hợp nhất trong các tệp nhưng tệp .xsl không biết cách hiển thị kết quả.

Nhưng tôi nghĩ có một giải pháp đơn giản. Dự án PhpUnderControl cung cấp một phpunit.jsp. Tôi nghĩ nếu bạn thêm điều này vào bản cài đặt CC hiện tại, bạn sẽ có thể xem kết quả kiểm tra. Bạn có thể thêm phpunit.jsp vào các tab khá dễ dàng; chỉ cần nhìn vào main.jsp và nó phải rõ ràng.

Nếu bạn có bất kỳ câu hỏi tiếp theo nào, tôi khuyên bạn nên sử dụng CruiseControl users mailing list.

(Tôi đã không được sử dụng CC trên một dự án PHP nhưng tôi là một trong những committers CC.)

+0

Cảm ơn bạn đã dành thời gian trả lời câu hỏi của tôi, Điều tôi muốn nói là 'không hợp nhất' là không có tệp nhật ký nào được tạo trong thư mục cc/logs/project sau lần đầu tiên xây dựng. Tôi bắt đầu lại và tạo tệp config.xml mới và tôi đã nhận nó hoạt động. Tôi cho rằng tôi đã làm hỏng tập tin cấu hình theo một cách nào đó. – CountZero

0

Tôi đã phát hiện ra rằng CruiseControl chỉ sáp nhập các bản ghi chứa kết quả kiểm tra khi một thử nghiệm thất bại.

Khi tôi đã phá vỡ thử nghiệm có mục đích, kết quả đã được hợp nhất vào nhật ký và được hiển thị trên bảng điều khiển CruiseControl.

Đó có phải là vấn đề của bạn không?

0

Chúng tôi đã thử sử dụng PHPUc với CC và chúng tôi không thể làm cho công cụ hoạt động đúng. Chúng tôi đã thử nghiệm với CC thẳng nhưng thấy khó khăn để có được xác thực trong đó (chúng tôi đang phân phối, vì vậy báo cáo của chúng tôi sẽ mở ra cho thế giới trừ khi chúng tôi đóng đinh nó xuống - chúng tôi không thể tìm ra nó.)

, chúng tôi hiện đang sử dụng Hudson làm công cụ CI và Phing làm công cụ xây dựng của chúng tôi. Nó hoạt động tốt. Chúng tôi có các báo cáo về mức độ phù hợp của PHPUnit (mà Hudson vẫn gọi là "bảo hiểm Clover" từ thế giới Java, nhưng đây chỉ là tên của một liên kết và chúng tôi biết ý nghĩa của nó).

Hudson dễ thiết lập và dường như hoạt động với mọi thứ bạn cần cho PHP.

+0

Vì tôi đăng bài này, chúng tôi thực sự đã làm cho PHPuc làm việc với Cruise Control và tất cả đều rất trơn tru. Tôi không phải là người đã làm nó, nhưng dường như nó có thể được thực hiện. Chúng tôi có các báo cáo về bảo hiểm mã với các biểu đồ PHPUnit, PMD, CodeSniffer và chỉ số tất cả đang hoạt động. Vì vậy, có hy vọng. –

1

phpunit, phpUnderControl và CC hoạt động tuyệt vời!

Để nhận được các bài kiểm tra trong tab (phpUnderControl với CC) trong file xml phpunit đảm bảo rằng các tập tin phpunit log được tạo ra là trong đường dẫn đúng

<log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/> 

Khi logfile.xml được tạo ra từ các xét nghiệm phpunit được hiển thị trong thẻ kiểm tra của cả phpUnderControl và CC.

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