Câu trả lời ngắn: cho các bài kiểm tra chạy dài sử dụng chú thích để tăng thời gian chạy cho phép:
@large // 10 seconds
@medium // 5 seconds
@small // 1 second max <-- Default, so no point using
dài trả lời:
Dưới đây là một bộ cập nhật thông tin đó được bắt nguồn với sự giúp đỡ của @Crozin.
Trong trường hợp của tôi, lỗi là một thử nghiệm mất quá nhiều thời gian (> 1 giây.) (Doctrine ORM lược đồ thả + tạo có thể làm chậm mọi thứ xuống, see this ZendCast for what I was doing). Điều này đã gây ra một vấn đề (và một số đầu ra) từ PHP_Invoker. Chế độ nghiêm ngặt không cho phép bất kỳ đầu ra nào.
Bằng cách đọc/kỹ thuật đảo ngược /usr/share/php/pear/share/pear/PHPUnit/Util/Test.php::getSize() (và getGroups() trên cùng một lớp) .. Tôi đã tìm ra ở đó là 3 chú thích không có giấy tờ mà chúng tôi có thể sử dụng:
@large // 10 seconds
@medium // 5 seconds
@small // 1 second max run time
Chúng có thể được chỉ định ở cấp lớp hoặc cấp độ phương pháp. Issue #490 on the PHPUnit github gợi ý về các vấn đề với việc cung cấp cả cấp lớp và cấp phương thức để YMMV nếu bạn trộn chúng. Như crozin cho biết, thời gian quy định là 10,5,1 giây tương ứng.
Giải pháp thay thế là tăng khoảng thời gian chức năng gọi được phép chạy (trên máy tính chậm).
sudo vi /usr/share/php/pear/share/pear/PHP/Invoker.php
Increase line 1 "declare(ticks = 1);" to
"declare(ticks = 10);" // or any higher int that meets your needs
Đây là một loạt các thông tin về chế độ nghiêm ngặt đã giúp tôi tìm ra giải pháp:
PHP_Invoker
Một lớp tiện ích cho cách gọi callables với một thời gian chờ. Gói này là bắt buộc để thực thi thời gian chờ kiểm tra ở chế độ nghiêm ngặt. [PHPUnit Install Instructions]
nghiêm ngặt chế độ thử nghiệm mà không khẳng định bất cứ điều gì được đánh dấu là không đầy đủ thử nghiệm mà chưa hoàn tất (hoặc bỏ qua) mang lại không có bảo hiểm mã Slideshare by Sebastian Bergmann (slide 10)
Note
Xin lưu ý rằng PHPUnit nuốt tất cả các đầu ra đó là phát ra trong quá trình thực hiện kiểm tra. Trong chế độ nghiêm ngặt, kiểm tra phát ra đầu ra sẽ không thành công. Testing output section of PHPUnit Manual
Thay đổi thời gian cho phép đối với các bài kiểm tra bạn cũng có trong tệp phpunit.xml như được mô tả ở đây http://stackoverflow.com/a/13722524/1387163 –