Tôi đã tự hỏi nếu bất cứ ai có kinh nghiệm trong cả hai công cụ này có thể làm sáng tỏ sự khác biệt đáng kể giữa hai nếu có?
Bất kỳ sức mạnh cụ thể của từng mà làm cho nó phù hợp cho bất kỳ trường hợp cụ thể?
Tôi đã tự hỏi nếu bất cứ ai có kinh nghiệm trong cả hai công cụ này có thể làm sáng tỏ sự khác biệt đáng kể giữa hai nếu có?
Bất kỳ sức mạnh cụ thể của từng mà làm cho nó phù hợp cho bất kỳ trường hợp cụ thể?
Câu trả lời:
Câu hỏi này khá cũ nhưng vì nó vẫn nhận được lưu lượng truy cập và câu trả lời Tôi mặc dù tôi nêu quan điểm của mình ở đây một lần nữa vì vậy tôi đã làm nó trên một số câu hỏi khác (mới hơn).
Tôi thực sự rất băn khoăn rằng SimpleTest vẫn được coi là một giải pháp thay thế cho phpunit. Có lẽ tôi chỉ đang hiểu sai nhưng theo như tôi đã thấy:
web interface to phpunit tests
.Tôi chưa thấy bất kỳ đối số có lợi cho SimpleTest. Nó thậm chí không đơn giản hơn để cài đặt vì PHPUnit có sẵn thông qua lê:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
và "bài kiểm tra đầu tiên" trông khá giống nhau.
Vì PHPUnit 3.7
nó thậm chí còn dễ dàng hơn để cài đặt nó chỉ bằng cách sử dụngPHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
hoặc cho windows chỉ cần tải xuống phar và chạy:
php phpunit-.phar
hoặc khi sử dụng các cách cài đặt của nhà soạn nhạc được hỗ trợ như
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
vào composer.json của bạn.
Đối với mọi thứ bạn muốn kiểm tra PHPUnit sẽ có một giải pháp và bạn sẽ có thể tìm thấy trợ giúp khá nhiều ở mọi nơi (SO, #phastait kênh irc trên freenode, khá nhiều nhà phát triển php;))
Vui lòng sửa cho tôi nếu tôi đã nói điều gì đó sai hoặc quên điều gì đó :)
Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Các slide: http://www.sl slideshoware.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Nó đề cập đến những thứ như Atoum tự gọi mình là: "Một khung kiểm thử đơn vị đơn giản, hiện đại và trực quan cho PHP!"
Ban đầu tôi đã viết câu trả lời này vào tháng 1 năm 2011 khi tôi không có liên kết với bất kỳ dự án Kiểm thử PHP nào. Kể từ đó, tôi trở thành người đóng góp cho PHPUnit.
include
các tệp .PHP của SimpleTest (như những gì khác đã giải thích.) đối với các lập trình viên chuyên nghiệp xây dựng ra PHPUnit môi trường thử nghiệm riêng của họ nghe có vẻ khó khăn để đánh bại nhưng nếu tích hợp một hệ thống kiểm tra vào một ứng dụng mã nguồn mở dựa trên PHP nơi "phát triển" cho các ứng dụng có thể có tốt nhất (cái mà tôi gọi) "lập trình nghề nghiệp" sau đó sự đơn giản của SimpleTest có một sức hấp dẫn thực sự, với tôi dù thế nào đi nữa. FWIW.
Bây giờ tôi thích PHPUnit hơn, nhưng khi tôi bắt đầu, tôi đã sử dụng SimpleTest vì tôi không phải lúc nào cũng có quyền truy cập vào dòng lệnh. SimpleTest là tốt, nhưng điều duy nhất nó thực sự có trên PHPUnit, theo tôi, là người chạy web.
Những lý do tôi thích PHPUnit là nó tích hợp với các công cụ phát triển PHP khác như phing (cũng như SimpleTest), phpUnderControl và Xinc . Kể từ phiên bản 3.0, nó có hỗ trợ chế giễu , đang được tích cực phát triển và tài liệu này rất tuyệt vời.
Thực sự cách duy nhất để trả lời câu hỏi này cho chính bạn là thử cả hai lần và xem cái nào phù hợp với phong cách của bạn hơn.
EDIT: Phing hiện cũng tích hợp với SimpleTest.
Tuy nhiên, tôi có thể dễ dàng hiểu cách cài đặt SimpleTest.
(Theo như tôi có thể nhớ các hướng dẫn cho PHPUnit đã nói điều gì đó dọc theo dòng "cài đặt nó qua PEAR và chúng tôi sẽ không đưa ra bất kỳ hướng dẫn nào về cách thực hiện theo bất kỳ cách nào khác") xem:
Đối với SimpleTest , chỉ cần tải xuống và trỏ đến mã từ mã của bạn.
Vì vậy, Simpletest đã thắng cho tôi.
Baphled có một bài viết hay về SimpleTest vs PHPUnit3 .
Một nửa số điểm được đề cập trong câu trả lời được chấp nhận đơn giản là không đúng:
SimpleTest có
Nhược điểm:
Tôi thấy SimpleTest thậm chí còn dễ dàng hơn PHPUnit để thiết lập. Chỉ cần giải nén nó và bạn là tốt để đi. Lợi ích của việc này là nếu bạn đang làm việc tại nhiều máy, vì bạn có thể lưu trữ toàn bộ khung kiểm tra giống như mã nguồn của mình và từ đó biết rằng bạn đang sử dụng cùng một mã khung. Đặc biệt là nếu bạn sửa đổi nó theo bất kỳ cách nào.
Vì vậy, tôi muốn nói rằng một điểm mạnh của SimpleTest là nó rất nhẹ và di động.
SimpleTest cũng xuất xưởng với GUI HTML rất đơn giản, khá dễ mở rộng nếu bạn muốn. Theo tôi biết, PHPUnit không bao gồm GUI HTML, nhưng có sẵn GUI: s để tải xuống, chẳng hạn như Cool .
Vâng, tôi đã tạo một trình chạy trường hợp kiểm tra giao diện người dùng dựa trên web phpUnit và làm cho nó có sẵn trên sourceforge. Sử dụng ajax và có giao diện khá tuyệt vời nếu bạn muốn cho nó một shot kiểm tra nó tại sourceforge. Tên dự án là phpunitwebui và trang web là http://phastaitwebui.sourceforge.net/
Như đã được chỉ ra, nó chủ yếu là một lựa chọn ưu tiên, vì cả hai sẽ chạy các bài kiểm tra bạn viết cho nó và báo cáo lại kết quả.
Giao diện người dùng web Simpletest rất hữu ích, nhưng đôi khi nó cũng có thể trở nên cồng kềnh. Trong dự án hiện tại của tôi, tôi sẽ phải đặt nhiều công việc hơn vào một hệ thống để làm cho ứng dụng của tôi (API) hoạt động với giao diện web (thiết lập chính xác apache, sao chép tệp vào gốc public_html, v.v.) so với trước đây để đơn giản chạy phpunit từ không gian làm việc nhật thực. Vì vậy, tôi chọn PHPUnit. Ngoài ra, việc sử dụng PEAR là một điểm cộng lớn vì bạn không cần theo dõi cập nhật thủ công. Chỉ cần chạy pear upgrade
một lần và PHPUnit sẽ được cập nhật.
Đây là từ quan điểm của một nhà phát triển PHP rất giản dị:
Tôi đã mất hai ngày để nắm bắt PHPUnit, chủ yếu là cố gắng gỡ lỗi theo Eclipse mà cuối cùng tôi đã từ bỏ.
Tôi mất hai giờ để thiết lập Simpletest, bao gồm cả gỡ lỗi trong Eclipse.
Có thể tôi sẽ tìm thấy những thiếu sót của Simpletest trong tương lai nhưng cho đến nay nó vẫn làm tốt những gì tôi cần: TestClass, đối tượng Mock, gỡ lỗi mã kiểm tra và giao diện web để xem nhanh tình huống.
Một lần nữa: Điều này theo quan điểm của một người dùng PHP rất bình thường (thậm chí không phải nhà phát triển :-)
Tôi đã không kiểm tra Simple Test trong một thời gian, lần trước nó có plugin nhật thực, đây là một yếu tố chính đối với tôi, nhưng nó đã không được cập nhật trong một thời gian dài. Sebastian Bergmann vẫn rất tích cực làm việc trên PHPUnit, nhưng nó vẫn thiếu một plugin tốt cho nhật thực - nhưng nó được bao gồm cho Zend Studio mới.
Câu hỏi này đã cũ, nhưng tôi muốn thêm kinh nghiệm của mình: PHPUnit dường như là tiêu chuẩn bây giờ, nhưng nếu bạn làm việc với một hệ thống kế thừa sử dụng rất nhiều biến số toàn cầu, bạn có thể bị mắc kẹt ngay từ đầu. Có vẻ như không có cách nào tốt để thực hiện kiểm tra với các vars toàn cầu trong PHPUnit, bạn dường như phải đặt các biến của mình thông qua $ GLOBALS, điều này KHÔNG TỐT nếu bạn có hàng tấn tệp đặt biến toàn cục ở mọi nơi. OK một số người có thể nói rằng vấn đề nằm ở hệ thống cũ nhưng điều đó không có nghĩa là chúng tôi không thể thực hiện các thử nghiệm trên hệ thống đó. Với SimpleTest điều đó thật đơn giản. Tôi cho rằng nếu PHPUnit cho phép chúng tôi bao gồm một tệp trên toàn cầu, không nằm trong bất kỳ phạm vi lớp / chức năng nào thì nó cũng sẽ không phải là vấn đề quá lớn.
Một giải pháp đầy hứa hẹn khác là http://www.enhance-php.com , có vẻ hay :)
<phpunit backupGlobals="false">
cấu hình XML và chưa bao giờ có bất kỳ vấn đề nào với toàn cầu trong các thử nghiệm ...
global $xxx
và tất cả các kết hợp của nó, trước khi cố gắng --no-globals-backup
và đột nhiên nhìn thấy tất cả làm việc như mong đợi. : D
Khi có hàng ngàn chức năng để kiểm tra cùng một lúc, phpunit sẽ hoạt động, thử nghiệm đơn giản sẽ bị thiếu khi nó dựa trên web.
Tôi vẫn đang sử dụng web đơn giản để thử nghiệm quy mô nhỏ.
Nhưng cả hai đều tốt