Tôi hiện đang sử dụng Zend Framework cùng với PHPUnit để tiến hành kiểm tra đơn vị trên một ứng dụng. Khi Hudson thực thi lệnh shell PHPUnit, giới hạn bộ nhớ PHP tối đa đạt được đôi khi trong quá trình tạo mã vùng. Tôi hiện có tổng cộng 41 bài kiểm tra với 334 xác nhận.Tạo mã vùng PHPUnit gây ra tình trạng cạn kiệt bộ nhớ
Tôi đã loại bỏ thành công lỗi này bằng cách tăng cài đặt memory_limit lên 768M bằng cách sử dụng công tắc -d memory_limit=768M
; tuy nhiên, tôi lo rằng khi độ phức tạp tăng cùng với tổng số kiểm tra/xác nhận, tôi sẽ không có đủ bộ nhớ để tạo HTML cho các thống kê về mức độ phù hợp của mã.
OS: CentOS 5,5
Control Panel: WHM/cPanel
CI Server: Hudson
/usr/local/bin/phpunit
--verbose
-d memory_limit=512M
--log-junit ../../build/logs/phpunit.xml
--coverage-clover ../../build/logs/coverage/clover.xml
--coverage-html ../../build/logs/coverage-html/
Fatal error: Allowed memory size of 536870912 bytes exhausted
Trước khi cam kết thay đổi của tôi và để Hudson xử lý phần còn lại, tôi sử dụng Windows 7 để phát triển. Việc sử dụng bộ nhớ không bao giờ vượt quá 340MB trong khi chạy cùng một lệnh trong W7.
Có phải tất cả các trường hợp kiểm tra của bạn trong một lớp học không? – allnightgrocery
Không, các bài kiểm tra được chia giữa bốn tệp khác nhau. Các xét nghiệm này tương đối đơn giản, đặc biệt. so với những gì chúng tôi đã lên kế hoạch. –
:) cảm ơn bạn đã đăng giải pháp của mình. Tôi đã gặp vấn đề bạn liệt kê và đã thực sự hack vào nó. Mỗi khi một cái gì đó sẽ xuất hiện (bộ nhớ đã cạn kiệt trong /pear/phpunit/framework/whatever.php trên dòng 1999), tôi gõ 'sudo vi /.../ whatever.php' và thêm vào một dòng' set_ini ("memory_limit "," 1000M ")'. Có lẽ không phải là thực hành tốt nhất;) –