2010-03-11 40 views
45

Có một "giao diện Web" đơn giản để chạy các bộ kiểm thử PHPUnit không? tức là tập lệnh PHP chạy thử nghiệm trên dòng lệnh và xuất kết quả HTML được định dạng độc đáo."Giao diện web" để kiểm tra PHPUnit?

Tôi phát triển các ứng dụng web và quy trình làm việc hàng ngày thường chuyển giữa IDE và trình duyệt. Tôi muốn thử nghiệm đơn vị trong cùng một môi trường.

Tôi đang tìm một cái gì đó thực sự đơn giản và dựa trên PHP - Tôi đang lên kế hoạch để vào phpUnderControl (có chức năng mà tôi đang tìm) nhưng chưa.

+0

+1 Nói Pekka, bạn không thể đọc được suy nghĩ của tôi phải không? – middus

+0

@middus có * ngẫu nhiên * trùng hợp ngẫu nhiên trên SO đôi khi. :) –

+0

Bạn cũng có thể muốn kiểm tra Hudson như là một thay thế cho phpUnderControl. Một bài viết hay (với một số tài liệu tham khảo trực tuyến tốt) về cách thiết lập nó có thể được tìm thấy tại http://luhman.org/blog/2009/12/16/installing-hudson-phing-phpunit-and-git-ubuntu – wimvds

Trả lời

12

Bạn có thể sử dụng Phing để chạy một PHPUnitTask và sau đó chuyển đổi kết quả với:

  • PHPUnitReport - Nhiệm vụ này biến báo cáo xml PHPUnit sang HTML sử dụng XSLT.

Ví dụ:

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/> 

Xem phpunit --help cho các định dạng đầu ra khác nhau.

Phiên bản 2.3 của PHPUnit có một chương về điều này, nhưng nó đã biến mất một thời gian rồi. Bạn có thể tìm thấy một bản sao cũ với Google ở ​​đâu đó.

Vì bạn đề cập đến điều này là cho phpUnderControl: nếu bạn không cố định trên đó, hãy cân nhắc sử dụng Jenkins và http://jenkins-php.org.

Lưu ý: trừ khi chúng ta đang nói đến máy chủ CI, hầu hết những người tôi biết không sử dụng PHPUnit thông qua giao diện web. Họ chỉ sử dụng dòng lệnh hoặc tích hợp IDE của họ.

+0

Chúc mừng @Gordon điều này có vẻ thú vị. Mặc dù vậy, tôi muốn có được sự phụ thuộc bổ sung, vì vậy tôi sẽ thử bài đăng trên blog mà tôi đã tìm thấy đầu tiên (xem bên dưới). Nếu điều đó không hiệu quả, tôi sẽ quay lại với điều này. –

+0

@Pekka cách tiếp cận trong bài đăng trên blog có vẻ tương tự. Nó cũng sử dụng XML và sau đó định dạng lại nó thành HTML. Nếu bạn không muốn sử dụng phing, bạn chỉ có thể lấy XML từ PHPUnit và sử dụng XSLT của Phing để biến đổi chương trình bằng PHP thay thế. Tôi nghĩ rằng các tệp XSL ở đây: http://phing.info/trac/browser/trunk/etc – Gordon

+0

Liên kết hiện tại tới các tệp XSL là http://www.phing.info/trac/browser/etc –

1

Tôi chưa bao giờ thấy giao diện web như vậy ... Nhưng, như bạn nói bạn luôn sử dụng IDE và trình duyệt web của mình, tại sao bạn không nghĩ theo cách khác?

tức là giải pháp khả thi sẽ là khởi chạy các khoản không thanh toán từ IDE ;-)
Điều này có nghĩa là bạn có thể nhấp vào các thử nghiệm không thành công để "nhảy" sang phương pháp thử nghiệm hoặc nguyên nhân gây ra ví dụ như thử nghiệm thất bại.


Trong PHP + PHPUnit trên thế giới, tôi biết rằng Zend Studio nào đó - có, nó không phải là miễn phí, tiếc là ;-(


Sử dụng Eclipse PDT, một giải pháp sẽ được đăng ký như một PHPUnit công cụ bên ngoài (xem hoặc ví dụ blogpost này: Using PHPUnit with Eclipse PDT) - nhưng nó không phải là sexy, và bạn không thể nhấp vào kết quả để nhảy các phương pháp/kiểm tra ...

Một giải pháp khác là phát triển plugin để tích hợp PHPUnit vào Eclipse PDT (như nó đã được thực hiện cho Zend Studio, tôi su ppose) - Một phpunit4eclipse được tạo ra một thời gian trước đây, nhưng nó chỉ là một sự khởi đầu, và không nhận được nhiều succes, do đó tác giả đã không làm việc trên nó sau khi phát hành ...

+0

Chúc mừng @Pascal, gợi ý tốt nhưng tôi không sử dụng cả Zend lẫn Eclipse (tôi sử dụng phpEd). Đã lâu rồi tôi mới mua bản cập nhật cuối cùng nên có thể điều này cũng được hỗ trợ ở đây - tôi sẽ kiểm tra chắc chắn, ý tưởng hay. Tôi vẫn thực sự thích một giải pháp IDE độc lập cho điều này, mặc dù. –

+0

Bạn được chào đón :-) ;; Oh, ok về IDE khác ^^ –

+1

Netbeans cũng có giao diện đồ họa PHPUnit Runner tiện dụng, cho phép gỡ lỗi thử nghiệm quá hữu ích khi các kiểm tra không thành công/lỗi vì lý do không xác định. –

1

Tôi tìm thấy this:

Tôi tình cờ gặp một bài đăng từ Parth Patil, giải pháp của họ là tạo báo cáo xml từ PHPUnit và sau đó sử dụng xml này để tạo báo cáo của riêng bạn.

Tôi đã sử dụng giải pháp của mình, đã làm cho nó tương thích với PHPUnit 3.4 và cũng thêm một số Phản ánh để xem tài liệu testcase của tôi trong báo cáo. (Lưu ý: Để tái chọn tôi sử dụng lớp phản chiếu Zend_Framework)

1

Ok bạn đã nói bạn thích một giải pháp IDE độc lập, nhưng chỉ để bạn biết có một plugin gần đây cho phép thực hiện PHPUnit đơn giản vào Eclipse, và có một đại diện tốt đẹp (như trong Zend Studio, nhưng miễn phí).

Dưới đây là liên kết, các developper chính trả lời nhanh để email quá nếu bạn có một vấn đề:

http://www.phpsrc.org/wiki/

tôi personnaly thử nghiệm một số giao diện web, nhưng tôi đã luôn luôn bị lừa dối (không thực sự practital và ổn định). Nhưng đây là sự lựa chọn của bạn.

+0

Chúc mừng Matthieu, tôi không sử dụng nhật thực nhưng điều này vẫn còn tốt để biết.+1 –

0

Bạn luôn có thể sử dụng Maven cho PHP mà từ đó bạn có thể sử dụng báo cáo chắc chắn (trang web mvn). Thông tin thêm tại đây: http://www.php-maven.org

22

Tôi cảm thấy thất vọng của bạn - tôi là một chàng trai giao diện người thân. Nhìn vào thiết bị đầu cuối quá dài khiến đầu tôi quay. Tôi đã viết một ứng dụng nhỏ mà bạn có thể thấy hữu ích.

PHPUnit test application http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

Bạn có thể tìm thấy nó ở đây: http://mattmueller.me/blog/introducing-phpunit-test-report

Cheers! Matt

+6

Giải pháp của Matt thật tuyệt vời và với chiếc nĩa này, nó càng trở nên tốt hơn. https://github.com/NSinopoli/VisualPHPUnit Thumbs up! – Bruiser

+0

Liên kết của bạn bị hỏng –

7

Bạn có thể sử dụng Jenkins để chạy bất kỳ loại nhiệm vụ bao gồm cả kiểm tra PHPUnit. Ứng dụng có thể tự động kiểm tra ứng dụng của bạn, chạy thử nghiệm, tạo báo cáo HTML và thậm chí gửi email cho bạn nếu quá trình xây dựng không thành công.

Here's the templates bạn cần phải thiết lập Jenkins để xây dựng một loạt các báo cáo và thống kê thú vị từ dự án của bạn.

+0

+1 cho jenkins! – Matt

26

thời gian gần đây tôi phát hiện ra Visual PHPUnit mà trông giống như một giao diện rất rất tốt đẹp cho tất cả mọi người mà không muốn chạy PHPUnit từ dòng lệnh:

Visual PHPUnit

Nó có vẻ là phiên bản kế tiếp của @ Matt PHPUnit Test Report

+3

Có thể cài đặt nó mà không cần cấu hình * lê * không? – Fractaliste

1

jframework cũng có giao diện người dùng đẹp cho PHPUnit. Nó phá vỡ kết quả, và cho thấy phạm vi kiểm tra trên tất cả các tệp và từng tệp riêng biệt. Nó hoạt động trên cả web và cli, với cli một có lợi ích của việc bán phá giá mọi thử nghiệm sau khi hoàn thành (web-based phải đợi cho đến khi mọi thứ kết thúc).

General web output, with code coverage per file

Code coverage report for a single file

0

Nếu bạn không quan tâm đến định dạng đầu ra và chỉ muốn chạy PHPUnit từ một trang web, bạn có thể làm như vậy với một số mã PHP như thế này:

<pre> 
<?php 
$argv[0] = "phpunit.phar"; 
$argv[1] = '--bootstrap'; 
$argv[2] = 'src/load.php'; 
$argv[3] = "tests/MoneyTest"; 
$_SERVER['argv'] = $argv; 
include 'phpunit.phar'; 
?> 
</pre> 

Tệp src/load.php chỉ là một nhóm gồm có các lớp. Kết quả xuất hiện như sau:

#!/usr/bin/env php 
PHPUnit 4.1.2 by Sebastian Bergmann. 

........................ 

Time: 122 ms, Memory: 3.25Mb 

OK (24 tests, 43 assertions) 

Chỉ cần bỏ qua dòng đầu tiên đó và bạn có thể thấy kết quả.

Tôi bị sốc rằng PHPUnit không bao gồm cách cơ bản để thực hiện việc này. Một số lớp có thể phụ thuộc vào máy chủ web. Chúng ta không kiểm tra chúng? Một số trang web có bạn tải lên các tệp của mình và không cho phép thực thi dòng lệnh.

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