PhpUnit ... Killed Why is he being killed?

My phpunit.xml

 <phpunit bootstrap="bootstrap.php" backupGlobals="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" > <testsuites> <testsuite> <directory suffix="Test.php">./tests</directory> </testsuite> </testsuites> <logging> <log type="coverage-html" target="coverage" lowUpperBound="75" highUpperBound="100" /> </logging> </phpunit> 

My bootstrap.php :

 <?php /** ---------------------------------------------------- **/ // Require the vendors autoload file. /** ---------------------------------------------------- **/ require_once 'vendor/autoload.php'; /** ---------------------------------------------------- **/ // We neeed WordPress Bootstrap files for its test. /** ---------------------------------------------------- **/ define('WP_TEST_DIR', parse_ini_file('test-config.ini')['test-location']); // Include the bootstrap file. require_once WP_TEST_DIR . 'includes/bootstrap.php'; // Include the Functions file require_once WP_TEST_DIR . 'includes/functions.php'; 

When I run this with the log section, no comment, I get:

 vagrant@vagrant-ubuntu-trusty-64 :/vagrant/Freya/Routes$ phpunit Installing... Running as single site... To run multisite, use -c tests/phpunit/multisite.xml Not running ajax tests. To execute these, use --group ajax. Not running ms-files tests. To execute these, use --group ms-files. Not running external-http tests. To execute these, use --group external-http. PHPUnit 4.6.6 by Sebastian Bergmann and contributors. Configuration read from /vagrant/Freya/Routes/phpunit.xml ...............Killed 

When I comment on a post, I get:

 vagrant@vagrant-ubuntu-trusty-64 :/vagrant/Freya/Routes$ phpunit Installing... Running as single site... To run multisite, use -c tests/phpunit/multisite.xml Not running ajax tests. To execute these, use --group ajax. Not running ms-files tests. To execute these, use --group ms-files. Not running external-http tests. To execute these, use --group external-http. PHPUnit 4.6.6 by Sebastian Bergmann and contributors. Configuration read from /vagrant/Freya/Routes/phpunit.xml .................................. Time: 9.64 seconds, Memory: 45.50Mb OK (34 tests, 38 assertions) 

Why does he die without visible errors? is it a memory problem? If so, why not say it? This test suite includes the WordPress test suite class WP_UnitTestCase so that I can configure a fake Wordpress installation for some tests. But, as you can see the second time, I ran tests with logged entries, I get 45.50mb of used memory. It's nothing.

 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = On display_startup_errors = Off 

Php Version 5.5.9

What's happening? (Yes there is a cover folder)

Update 1

It turns out that dmesg shows:

 [942618.313174] Out of memory: Kill process 12987 (php) score 384 or sacrifice child [942618.315188] Killed process 12987 (php) total-vm:453360kB, anon-rss:192380kB, file-rss:12kB [942757.404416] php5-fpm invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0 [942757.404421] php5-fpm cpuset=/ mems_allowed=0 [942757.404424] CPU: 0 PID: 16427 Comm: php5-fpm Tainted: G OX 3.13.0-37-generic #64-Ubuntu [942757.404426] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 [942757.404428] 0000000000000000 ffff88000200d980 ffffffff8171ed09 ffff88001dfbb000 [942757.404431] ffff88000200da08 ffffffff817195c4 0000000000000000 0000000000000000 [942757.404432] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 

Do I need to increase PHP memory in this case?

+5
source share
1 answer

I found a better way (only?) For diagnosing fatal errors in PHPUnit, to add a hook trap to the bootstrap. PHPUnit has error traps on its own to help with reporting, but for some reason this prevents reporting of some basic / fatal types in general.

I add this to all my projects:

phpunit.xml:

 < phpunit bootstrap="bootstrap.php" ... 

bootstrap.php:

 // PHPUnit dies silently with FATAL ERRORS which makes it hard to debug the tests. register_shutdown_function('PHPUnit_shutdownFunction'); function PHPUnit_shutdownFunction() { // http://www.php.net/manual/en/errorfunc.constants.php $error = error_get_last(); if (!is_null($error)){ if($error['type'] & (E_ERROR + E_PARSE + E_CORE_ERROR + E_COMPILE_ERROR + E_USER_ERROR + E_RECOVERABLE_ERROR)){ echo 'Test Bootstrap: Caught untrapped fatal error: '; var_export($error); } } } 

And these mysterious problems are a thing of the past.

+2
source

All Articles