ฉันสงสัยว่าใครก็ตามที่มีประสบการณ์ในทั้งสองสิ่งนี้สามารถให้ความกระจ่างเกี่ยวกับความแตกต่างที่สำคัญระหว่างทั้งสองได้หรือไม่?
ความแข็งแรงเฉพาะของแต่ละข้อที่เหมาะสำหรับกรณีใด ๆ ?
ฉันสงสัยว่าใครก็ตามที่มีประสบการณ์ในทั้งสองสิ่งนี้สามารถให้ความกระจ่างเกี่ยวกับความแตกต่างที่สำคัญระหว่างทั้งสองได้หรือไม่?
ความแข็งแรงเฉพาะของแต่ละข้อที่เหมาะสำหรับกรณีใด ๆ ?
คำตอบ:
คำถามนี้ค่อนข้างล้าสมัย แต่เนื่องจากยังคงได้รับการเข้าชมและคำตอบแม้ว่าฉันจะระบุประเด็นของฉันที่นี่อีกครั้งแม้ว่าฉันจะทำกับคำถามอื่น (ใหม่กว่า)
ฉันรู้สึกงุนงงจริงๆที่ SimpleTest ยังถือว่าเป็นอีกทางเลือกหนึ่งของ phpunit บางทีฉันอาจจะเข้าใจผิด แต่เท่าที่ฉันเห็น:
web interface to phpunit tests
.ฉันยังไม่เห็นข้อโต้แย้งใด ๆ ที่สนับสนุน SimpleTest มันไม่ง่ายเลยในการติดตั้งเนื่องจาก PHPUnit พร้อมใช้งานผ่านลูกแพร์:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
และ "การทดสอบครั้งแรก" ก็ดูเหมือนกันมาก
ขณะที่PHPUnit 3.7
มันเป็นเรื่องง่ายยิ่งขึ้นที่จะติดตั้งได้โดยเพียงแค่ใช้PHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
หรือสำหรับ windows เพียงแค่ดาวน์โหลด phar และเรียกใช้:
php phpunit-.phar
หรือเมื่อใช้วิธีการติดตั้งของนักแต่งเพลงที่รองรับเช่น
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
ไปยังผู้แต่งของคุณ json
สำหรับทุกสิ่งที่คุณต้องการทดสอบ PHPUnit จะมีวิธีแก้ปัญหาและคุณจะสามารถค้นหาความช่วยเหลือได้ทุกที่ (SO, #phpunit irc channel บน freenode, นักพัฒนา php ทุกคน;))
โปรดแก้ไขฉันหากฉันระบุบางอย่างผิดพลาดหรือลืมบางสิ่ง :)
วิดีโอ: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
สไลด์: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
โดยกล่าวถึงสิ่งต่างๆเช่นAtoumซึ่งเรียกตัวเองว่า "กรอบการทดสอบหน่วยที่เรียบง่ายทันสมัยและใช้งานง่ายสำหรับ PHP!"
ฉันได้เขียนคำตอบนี้ในตอนแรกเมื่อเดือนมกราคม 2011 โดยที่ฉันไม่มีส่วนเกี่ยวข้องกับโครงการทดสอบ PHP ใด ๆ ตั้งแต่นั้นมาฉันก็เป็นผู้สนับสนุน PHPUnit
include
การติดตั้งไฟล์ SimpleTest .PHP (ตามที่คนอื่นอธิบายไว้)สำหรับโปรแกรมเมอร์มืออาชีพที่สร้างสภาพแวดล้อมการทดสอบ PHPUnit ของตัวเองฟังดูยาก แต่ถ้ารวมระบบทดสอบเข้ากับแอปโอเพนซอร์สที่ใช้ PHP ซึ่ง"นักพัฒนา"สำหรับแอปอาจดีที่สุด(สิ่งที่ฉันเรียกว่า) "โปรแกรมเมอร์อาชีพ"แล้ว ความเรียบง่ายของ SimpleTest มีเสน่ห์สำหรับฉันอยู่แล้ว FWIW
ตอนนี้ฉันชอบ PHPUnit แต่เมื่อฉันเริ่มต้นฉันใช้ SimpleTest เนื่องจากฉันไม่สามารถเข้าถึงบรรทัดคำสั่งได้ตลอดเวลา SimpleTest เป็นสิ่งที่ดี แต่สิ่งเดียวที่มีใน PHPUnit ในความคิดของฉันคือนักวิ่งเว็บ
เหตุผลที่ฉันชอบ PHPUnit คือมันทำงานร่วมกับเครื่องมือสำหรับนักพัฒนา PHP อื่น ๆ เช่นphing (เช่นเดียวกับ SimpleTest) phpUnderControlและXinc ในเวอร์ชัน 3.0 มีการรองรับแบบจำลองกำลังได้รับการพัฒนาอย่างแข็งขันและเอกสารประกอบก็ยอดเยี่ยม
วิธีเดียวที่จะตอบคำถามนี้ด้วยตัวคุณเองจริงๆคือลองใช้ทั้งสองครั้งและดูว่าแบบไหนเหมาะกับสไตล์ของคุณมากกว่า
แก้ไข: ขณะนี้ Phing ทำงานร่วมกับ SimpleTest แล้วเช่นกัน
อย่างไรก็ตามฉันสามารถเข้าใจวิธีการติดตั้ง SimpleTest ได้อย่างง่ายดาย
(เท่าที่ฉันจำคำแนะนำสำหรับPHPUnit ได้กล่าวว่ามีบางอย่างตามบรรทัดของ "ติดตั้งผ่าน PEAR และเราจะไม่ให้คำแนะนำเกี่ยวกับวิธีการอื่นใด") โปรดดู:
สำหรับSimpleTestเพียงดาวน์โหลดและชี้ไปที่รหัสของคุณ
Simpletest ชนะแล้วสำหรับฉัน
Baphled มีบทความที่ดีในSimpleTest VS PHPUnit3
ครึ่งหนึ่งของประเด็นที่กล่าวถึงในคำตอบที่ยอมรับนั้นไม่เป็นความจริง:
ข้อเสีย:
ฉันพบว่า SimpleTest นั้นง่ายกว่า PHPUnit ในการตั้งค่า เพียงแค่แยกมันและคุณก็พร้อมที่จะไป ข้อดีของสิ่งนี้คือถ้าคุณทำงานกับเครื่องมากกว่าหนึ่งเครื่องเนื่องจากคุณสามารถจัดเก็บกรอบการทดสอบทั้งหมดในลักษณะเดียวกับซอร์สโค้ดของคุณและด้วยเหตุนี้จึงทราบว่าคุณกำลังใช้รหัสกรอบงานเดียวกัน โดยเฉพาะอย่างยิ่งถ้าคุณแก้ไขด้วยวิธีใด ๆ
ดังนั้นฉันจะบอกว่าจุดแข็งของ SimpleTest คือน้ำหนักเบามากและพกพาได้
SimpleTest ยังมาพร้อมกับ HTML GUI ที่เรียบง่ายซึ่งค่อนข้างง่ายที่จะขยายหากคุณต้องการ เท่าที่ผมรู้ว่า PHPUnit ไม่รวม HTML GUI แต่มี GUI: s มีให้ดาวน์โหลดเช่นเย็น
ฉันได้สร้างกรณีทดสอบ UI บนเว็บ phpUnit และทำให้พร้อมใช้งานบน sourceforge ใช้ ajax และมีอินเทอร์เฟซที่ค่อนข้างเจ๋งเช่นกันหากคุณต้องการให้มันตรวจสอบที่ sourceforge ชื่อโครงการคือ phpunitwebui และเว็บไซต์คือhttp://phpunitwebui.sourceforge.net/
ตามที่ได้ระบุไว้ส่วนใหญ่เป็นตัวเลือกที่ต้องการเนื่องจากทั้งสองจะเรียกใช้การทดสอบที่คุณเขียนขึ้นและรายงานผลกลับ
UI ของเว็บที่เรียบง่ายมีประโยชน์มาก แต่บางครั้งก็อาจยุ่งยากได้เช่นกัน ในโครงการปัจจุบันของฉันฉันจะต้องเพิ่มงานลงในระบบเพื่อให้แอปพลิเคชันของฉัน (API) ทำงานกับเว็บอินเตอร์เฟส (ตั้งค่า apache ให้ถูกต้องคัดลอกไฟล์ไปยังรูท public_html ฯลฯ ) มากกว่าที่จะเป็น เพียงแค่เรียกใช้ phpunit จากพื้นที่ทำงาน eclipse ดังนั้นฉันจึงเลือก PHPUnit นอกจากนี้การใช้ PEAR เป็นข้อดีอย่างมากเนื่องจากคุณไม่จำเป็นต้องติดตามการอัปเดตด้วยตนเอง เรียกใช้เพียงpear upgrade
ครั้งเดียวและ PHPUnit จะได้รับการอัปเดตอยู่เสมอ
นี่คือจากมุมมองของนักพัฒนา PHP ทั่วไป:
ฉันใช้เวลาสองวันในการเข้าใจ PHPUnit ซึ่งส่วนใหญ่พยายามแก้จุดบกพร่องภายใต้ Eclipse ซึ่งในที่สุดฉันก็ยอมแพ้
ฉันใช้เวลาสองชั่วโมงในการตั้งค่า Simpletest รวมถึง debug ภายใต้ Eclipse
บางทีฉันอาจจะพบข้อบกพร่องของ Simpletest ในอนาคต แต่จนถึงตอนนี้มันก็ทำได้ดีในสิ่งที่ฉันต้องการ: TestClasses, Mock objects, test-code debugging และ web interface สำหรับภาพรวมของสถานการณ์อย่างรวดเร็ว
อีกครั้ง: จากมุมมองของผู้ใช้ PHP ทั่วไป (ไม่ใช่แม้แต่นักพัฒนา :-)
ฉันไม่ได้ตรวจสอบ Simple Test มาระยะหนึ่งแล้วครั้งที่แล้วมีปลั๊กอิน eclipse ซึ่งเป็นปัจจัยหลักสำหรับฉัน แต่ก็ไม่ได้รับการอัปเดตเป็นเวลานาน Sebastian Bergmann ยังคงทำงานอย่างแข็งขันบน PHPUnit แต่ก็ยังขาดปลั๊กอินที่ดีสำหรับ eclipse - แต่รวมอยู่ใน Zend Studio ใหม่
คำถามนี้เก่า แต่ฉันต้องการเพิ่มประสบการณ์ของฉัน: ตอนนี้ PHPUnit ดูเหมือนจะเป็นมาตรฐาน แต่ถ้าคุณทำงานกับระบบเดิมที่ใช้ตัวแปรทั่วโลกจำนวนมากคุณอาจติดขัดจากการเริ่มต้น ดูเหมือนว่าจะไม่มีวิธีที่ดีในการทดสอบกับ global vars ใน PHPUnit ดูเหมือนว่าคุณจะต้องตั้งค่าตัวแปรของคุณผ่าน $ GLOBALS ซึ่งไม่ดีเลยหากคุณมีไฟล์จำนวนมากที่ตั้งค่าตัวแปรส่วนกลางทุกที่ โอเคบางคนอาจบอกว่าปัญหาอยู่ในระบบเดิม แต่ไม่ได้หมายความว่าเราไม่สามารถทำการทดสอบในระบบดังกล่าวได้ ด้วย SimpleTest สิ่งนี้เป็นเรื่องง่าย ฉันคิดว่าถ้า PHPUnit อนุญาตให้เรารวมไฟล์ได้ทั่วโลกโดยไม่อยู่ในขอบเขตคลาส / ฟังก์ชันใด ๆ มันก็จะไม่เป็นปัญหามากเกินไปเช่นกัน
อีกวิธีหนึ่งที่น่าสนใจคือhttp://www.enhance-php.comดูดี :)
<phpunit backupGlobals="false">
config XML มาโดยตลอดและไม่เคยมีปัญหากับ globals ในการทดสอบเลย ...
global $xxx
และชุดค่าผสมทั้งหมดก่อนที่จะลอง--no-globals-backup
และทันทีที่เห็นทั้งหมด ทำงานตามที่คาดไว้ : D
เมื่อมีฟังก์ชั่นมากมายให้ทดสอบในคราวเดียว phpunit เป็นวิธีที่จะไปการทดสอบง่ายๆก็สั้นลงเนื่องจากเป็นเว็บ
ฉันยังคงใช้เว็บง่ายๆในการทดสอบขนาดเล็ก
แต่ก็ดีทั้งคู่