2012-01-10 18 views
11

Tôi vừa cài đặt phpunit qua lê trong mac OSX 10.7 và mọi thứ hoạt động tốt trừ khi tôi gặp lỗi giới hạn bộ nhớ (xdebug được bật cho báo cáo).tham số phpunit memory_limit không áp dụng

Tôi cố gắng để thêm tham số -d memory_limit=512M để phpunit nhưng nó không được áp dụng bởi vì, về lỗi đầu tiên, tôi đã thêm var_dump(ini_get('memory_limit')); exit; và nó in string (3) "32M"

Vì vậy, tại sao nó không được được áp dụng?

Bên cạnh đó, nếu tôi chạy

php -d memory_limit=256M -r "echo ini_get('memory_limit');" 

nó vang "256M"

Có thể rằng phpunit không thực hiện cùng php?

+0

Bạn đã thử 'ini_set ('memory_limit', '512M')'? – afuzzyllama

+0

@afuzzyllama Nó hoạt động nhưng tôi không hiểu tại sao nó không có dòng lệnh – jerkan

+1

Điều này nghe có vẻ ngu ngốc, nhưng điều gì sẽ xảy ra nếu bạn thử 'phpunit -dmemory_limit = 512M'? – afuzzyllama

Trả lời

20

Có, bạn có thể đặt mọi tùy chọn php bằng phpunit -d có thể được đặt bằng ini_set.

You already opened a bug over in the phpunit bug tracker nhưng cũng tôi sẽ cho câu trả lời dài dòng thêm ở đây

sinh sản để hiển thị nó hoạt động nói chung:

echo "<?php var_dump(ini_get('memory_limit')); " > foo.php 

phpunit -d memory_limit=12M --bootstrap foo.php 

Tạo:

string(3) "12M" 
PHPUnit 3.6.5 by Sebastian Bergmann. 

Nhưng phpunit chỉ áp dụng tùy chọn này một lần trước khi thử nghiệm đầu tiên được chạy!

Vì vậy, rất có thể mã của bạn đang ở đâu đó đang thay đổi giới hạn bộ nhớ quay lại 32M, điều mà phpunit không thể "sửa" được.

Các bước tương tự để đặt giới hạn bộ nhớ trong tệp phpunit.xml.

+0

Ví dụ đó đã được giải thích. Tuy nhiên, tôi không tìm thấy bất kỳ 'memory_limit' nào trong mã. Tôi sẽ tiếp tục – jerkan

+1

Cảm ơn bạn đã đề cập rằng mã nguồn của tôi có thể đặt giới hạn – Rvanlaak