2009-10-28 41 views
12

Tôi sử dụng Eclipse PDT cho PHP. Tôi có thể chạy thử nghiệm PhpUnit: hoạt động tốt.Gỡ lỗi một số kiểm tra PhpUnit trong Eclipse

Nhưng tôi không thể gỡ lỗi các bài kiểm tra đơn vị của mình. Có bằng cách nào đó đã làm điều này? Ai đó có thể giúp làm việc này không?

Thanx, Messaoud

Trả lời

10

Một ví dụ là nhiều giá trị hơn 1000 chữ:

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 

class MyTestCase extends PHPUnit_Framework_TestCase { 

protected function setUp() { 
    parent::setUp(); 

} 

function testSimple() { 
    echo "horray !"; 
} 

protected function tearDown() { 

    parent::tearDown(); 
} 

static function main() { 

    $suite = new PHPUnit_Framework_TestSuite(__CLASS__); 
    PHPUnit_TextUI_TestRunner::run($suite); 
} 
} 

if (!defined('PHPUnit_MAIN_METHOD')) { 
    MyTestCase::main(); 
} 

điều quan trọng là:

  1. cung cấp một phương pháp chính trong testcase của bạn

  2. kiểm tra nếu thử nghiệm được thực hiện trực tiếp (v ia php MyTestCase.php) hoặc bằng phpunit. nếu được thực hiện trực tiếp - chỉ cần khởi động trình thử nghiệm.

biết bạn có thể gỡ lỗi testcase của mình.

+0

O MY GOD! NẾU CHỈ Tôi đã vấp phải câu trả lời này * năm * trước đây khi lần đầu tiên tôi bắt đầu tìm kiếm !! Tôi đã thử rất nhiều thứ nhưng điều này chỉ * hoạt động *! THANK YOU, người dùng ẩn danh !! Cảm ơn bạn!! –

+0

Bạn rất đáng sợ. – fracz

2

Đối với những người đang tự hỏi nếu có hướng dẫn đơn giản để cấu hình Eclipse/Aptana với phpunit, đây là một trang web tôi đã tìm thấy:

http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit

gì bạn phải làm về cơ bản là:

  1. Đảm bảo thư viện PEAR của bạn nằm trong đường dẫn bao gồm dự án của bạn. Nhấp chuột phải vào dự án trong cửa sổ điều hướng và nhấp vào Thuộc tính. Bạn sẽ thấy có một phần cho PHP Include Path (hoặc PHP Build Path trong Aptana cho phiên bản của tôi), mở nó và thêm các thư viện PEAR của bạn vào đường dẫn include/build của bạn để Eclipse biết về phpunit.
  2. Tạo cấu hình gỡ lỗi chạy tệp phpunit.php (bạn có thể cần phải thêm phần mở rộng .php vào tệp nếu nó đang chạy với một shebang, như trường hợp trong Mac OS X). Vì vậy, với tệp phpunit.php là tập lệnh "Bắt đầu Hành động", hãy đặt "Đối số Script PHP" để tệp thử nghiệm PHPUnit mà bạn quan tâm được chạy bởi phpunit.php. Thêm bất kỳ đối số dòng lệnh nào khác, cho phù hợp với bạn. ví dụ. --verbose là một lựa chọn tốt. Bạn cũng có thể sử dụng các biến như $ {resource_loc} để Eclipse thay thế nó bằng tệp hiện tại chẳng hạn.
  3. Chạy cấu hình gỡ lỗi của bạn và tận hưởng gỡ lỗi!

Bạn không cần sửa đổi tệp thử nghiệm hoặc bất kỳ thứ gì, chúng sẽ hoạt động ra khỏi hộp.

2

Cuối cùng tôi chạy gỡ lỗi song song với dòng lệnh trong nhật thực 3.4. Debugging tôi chạy như "trang web PHP", mã số tối thiểu của tôi

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 
class XTest extends PHPUnit_Framework_TestCase{ 
    public function testX(){ 
     //... 
    } 
} 
if (!defined('PHPUnit_MAIN_METHOD')) { 
    header('Content-type:text/plain; charset=utf-8'); 
    PHPUnit_TextUI_TestRunner::run(new PHPUnit_Framework_TestSuite('XTest')); 
} 
5

Chúng tôi có thể giải quyết vấn đề này với Eclipse Plugin của chúng tôi MakeGood.

MakeGood cung cấp cách đơn giản để gỡ lỗi các thử nghiệm của bạn. Bạn chỉ chạy thử nghiệm trong Chế độ gỡ lỗi. Để biết thêm thông tin, hãy xem the user guide.phương pháp

Debugging a test

+0

Tôi thích plugin này. Sau khi thử nghiệm một số tùy chọn, nó trở thành tốt nhất cho giao diện người dùng, thiết lập dễ dàng và ổn định. –

0

Tôi đã xác nhận bằng cách thiết lập một breakpoint trong thiết lập của tôi() bên trong kiểm tra đơn vị của tôi bằng cách làm theo hướng dẫn tại đây:

How to Debug Your PHP Unit Tests in Eclipse

Nó bao gồm việc sao chép/usr/bin/tập tin phpunit cho dự án của bạn (vì vậy nó có thể truy cập thông qua GUI của eclipse) và thêm phần mở rộng .php vào nó. Từ đó, hãy goto cấu hình gỡ lỗi của bạn và đặt tệp PHP thành tệp phpunit.php đó.

Bước quan trọng tiếp theo có tác dụng lớn đối với tôi, vì tôi đang sử dụng Yii đã cung cấp cho tôi tệp bootstrap.php. Đặt một cái gì đó như thế này trong args của bạn:

--bootstrap=${workspace_loc}/my-project/trunk/protected/tests/bootstrap.php ${workspace_loc}/my-project/trunk/protected/tests/unit/SomeClassToTest.php 
+0

liên kết bị hỏng kể từ 2015-12-27 –

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