2009-05-19 26 views
6

Đã thử một thời gian khá lâu để làm việc này hoạt động chính xác nhưng không may mắn. Về cơ bản, tôi có Eclipse (3.3) với các công cụ phát triển PHP (PDT), và plugin PDT XDebug cũng như plugin Eclipse eclipse.Làm thế nào bạn có thể thiết lập PHP + xDebug + (x) Đơn vị + Eclipse để làm việc với các điểm ngắt trong các bài kiểm tra đơn vị?

Điều tôi muốn làm là mã gỡ lỗi được các kiểm tra đơn vị SimpleTest gọi. SimpleTest rõ ràng có thể thấy XDebug, bởi vì tôi có thể tạo ra các báo cáo bảo hiểm mã, nhưng nó sẽ không dừng lại trên các điểm ngắt.

Sửa: có nên thêm rằng XDebug và breakpoint làm việc tốt trong nhật thực, chỉ cần không phải khi gọi bởi SimpleTest

Có ai thiết lập này lên thành công? Có rất nhiều tài liệu guff xung quanh và ít trong cách thông tin hữu ích.

Cảm ơn!

Trả lời

3

Hãy chắc chắn rằng bạn có phiên bản XDebug phù hợp với các phiên bản của PHP và thêm vào đầu rất của file php.ini của bạn:

[xdebug] 
zend_extension=full_path_to_your_xdebug.so 
xdebug.default_enable=On 
xdebug.remote_enable=On 
xdebug.remote_handler="dbgp" 
xdebug.remote_host="localhost" 
xdebug.remote_port=9000 

Sau đó làm một apachectl gracefulphpinfo và chắc chắn rằng XDebug là hiện tại và hoạt động. Nếu có, mọi thứ sẽ hoạt động tốt. Tôi biết điều đó cho tôi.

chỉnh sửa: Tôi đã trả lời trước khi đọc toàn bộ câu hỏi.

trước khi chạy tập lệnh, bạn nên đặt biến môi trường;

export XDEBUG_CONFIG="idekey=session_name" 

Nó có thể là có thể làm điều này từ php nhưng tôi không thể kiểm tra điều này:

putenv('XDEBUG_CONFIG="idekey=session_name"'); 

Bạn nên chắc chắn rằng php nhị phân bạn đang sử dụng có phần mở rộng XDebug nạp, trên hệ thống của tôi mô-đun apache có nó, nhưng trình thông dịch CLI mặc định thì không, nhưng tôi chạy các phiên bản khác nhau với mục đích.

Có một số good documentation đây

0

Để đi xa hơn trên Kris' câu trả lời, Nếu bạn quản lý môi trường sản xuất và phát triển của bạn trên cùng một máy chủ, Đó là một ý tưởng tốt để hạ bệ các thiết lập Xdebug của bạn, hoặc đến một php include hoặc cho các đối virtualhosts của bạn được dành riêng cho dev hoặc testing môi trường:

  • cú pháp cho VirtualHosts là

    <virtualHost ....> 
    
        (...) 
    
        # Xdebug ENV 
        php_flag xdebug.auto_trace on 
        php_flag xdebug.idekey session_name 
        php_flag xdebug.profiler_enable_trigger 1 
        php_flag xdebug.(...) 
    
        (...) 
    
Các vấn đề liên quan