2012-10-01 27 views
5

Tôi muốn:Làm thế nào để gói PHPUnit với mã của tôi?

  • kiểm tra Run với PHPUnit bất kể môi trường của tôi (và nếu PHPUnit hoặc PEAR được cài đặt hay không)
  • kết quả Hiện thử nghiệm trên màn hình nếu có thể

thế nào có thể Tôi làm việc này? Tôi đã thử tải xuống mã here và bao gồm Autoload.php nhưng nó vẫn có một số phụ thuộc. Có lẽ có một số cách tiếp cận tốt hơn cho điều này hơn là cố gắng để bó nó với mã của tôi ...?

Trả lời

1

Các phụ thuộc sẽ phụ thuộc vào những tiện ích bổ sung bạn đang sử dụng, PHPUnit phải được tự chứa. Vì không có giải pháp quản lý gói nhất quán cho PHP (và bạn đã loại bỏ các tùy chọn khả thi nhất ngoài việc tái chế bánh xe), đặt cược tốt nhất của bạn sẽ bao gồm các tệp trong cây nguồn riêng biệt với mã ứng dụng. Tạo một thư mục anh chị em từ bất cứ cái gì mà APPLICATION_ROOT của bạn hay tương tự sẽ được đặt tên là "test" và có một thư mục "lib" hoặc tương tự đầy đủ của PHPUnit và bất kỳ phụ thuộc nào bạn cần cho nó có thể là một kế hoạch tốt. Không nên có sự chồng chéo và phụ thuộc một chiều từ thư mục kiểm tra đến nguồn ứng dụng chính.

Tôi giả sử bạn đang tìm trang kiểm tra sức khỏe tự động kiểm tra, vì vậy bạn có thể tạo trang đơn bao gồm những gì cần thiết từ thư mục kiểm tra đó. Lý tưởng nhất là nếu bạn có thư mục web cho thấy tài nguyên tĩnh của bạn, bạn có thể có tệp PHP chịu trách nhiệm tải Bộ điều khiển phía trước cho ứng dụng của bạn bằng cách bao gồm thư mục ứng dụng từ bên ngoài gốc tài liệu và sau đó tải tệp thứ hai bộ kiểm tra. Điều đó sẽ cho phép thư mục ứng dụng của bạn vẫn tập trung vào chính mã ứng dụng, thư mục kiểm tra để chứa mã thử nghiệm của bạn, và sau đó là 2 tệp nhỏ bao gồm tải các codebases (với bất kỳ định nghĩa hằng số chia sẻ nào, v.v. cũng được trích xuất và giữ DRY).

+0

Tôi phải bao gồm thư viện sai cách, nhưng tôi không thấy đề cập đến cách thực hiện điều này trên tài liệu chính thức. Và về "trang kiểm tra tự động healthceck", nó phải nằm trong thư mục dự án, vì vậy nó có thể nằm trong máy chủ sản xuất khi tôi triển khai. Tôi không biết làm thế nào để hiển thị các bài kiểm tra trên màn hình như tài liệu chỉ có vẻ nói về dòng lệnh. –

+0

Hiển thị kết quả phải nằm trong phần tạo báo cáo của tài liệu (bạn cũng có thể chỉ xuất bản báo cáo dưới gốc tài liệu). Các bài kiểm tra phải nằm trong thư mục được triển khai nếu bạn đi theo tuyến đường đó, nhưng nó phải là anh chị em của thư mục mã ứng dụng chứ không phải bên dưới nó. Nên có một phương tiện để gửi đến 2 thư mục khác nhau mà không cần phải trộn mã. Để thực hiện, tôi bắt đầu với phương thức dòng lệnh (được gọi thông qua PHP) vì đó là cách các bài kiểm tra sẽ được chạy thủ công hoặc sử dụng một công cụ xây dựng, và sau đó xem xét trao đổi trong các cuộc gọi API sau. –

+1

nhưng làm cách nào để bao gồm lib chính xác từ mã của tôi? và làm thế nào để chạy các bài kiểm tra từ php chính nó (không có dòng lệnh)? –

2

Để đưa PHPUnit trong các tập tin nguồn dự án của bạn tôi muốn đề nghị sau đây hướng dẫn:

Using PHPUnit From a Git Checkout từ phần PHPUnit Contributung.

Nó cho bạn biết về tất cả các gói bạn cần cài đặt và hiển thị cho bạn thấy để xây dựng một tập lệnh runner/wrapper cho tệp thực thi phpunit.

#!/bin/bash 
php -d include_path='.:../phpunit/:../dbunit/:../php-code-coverage/:../php-file-iterator/:../php-invoker/:../php-text-template/:../php-timer:../php-token-stream:../phpunit-mock-objects/:../phpunit-selenium/:../phpunit-story/:/usr/local/lib/php' ../phpunit/phpunit.php $* 

Bạn có thể thích ứng với đường dẫn đến nhu cầu của bạn hoặc nếu bạn muốn quấn nó trong kịch bản khác, bạn cũng có thể sử dụng phpunit hơi lập trình bởi

require '/path/to/phpunit/PHPUnit/Autoload.php'; 
PHPUnit_TextUI_Command::main(); 

này giả định rằng bạn ether có một tập tin phpunit.xml.dist hoặc bạn sử dụng các tham số cli thích hợp khi gọi tập lệnh trình bao bọc của mình.


Bạn cũng có thể sử dụng gói lê và giải nén tất cả các phiên bản ổn định thay vì làm việc từ thanh toán git để tiết kiệm dung lượng đĩa và repo.Các kịch bản wrapper và tất cả các công việc bao gồm đường dẫn là như nhau :)


liên quan SO câu hỏi:

PHP - Is there a portable version of PHPUnit?

PHPUNIT without installation

1

Có một giải pháp quản lý gói phù hợp cho PHP - http://getComposer.org . Nó cũng bây giờ có một phương tiện để cài đặt PHPunit theo kiểu soạn nhạc thông thường, http://packagist.org/packages/phpunit/phpunit

Với phần mềm được cài đặt, nó sẽ đặt tập lệnh dòng lệnh phpunit vào thư mục 'bin /' cục bộ, vì vậy bạn có thể gọi nó, mặc dù bạn có thể sẽ muốn có một kịch bản lệnh shell cũng đặt tập tin cấu hình mà nó sẽ sử dụng.

Thiết lập thông thường là thư mục kiểm tra/thư mục con với cấu trúc phân cấp của các lớp mở rộng PHPunit chạy thử nghiệm thực tế.

+0

.. có thể là nhà soạn nhạc di động. – Pacerier

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