Opened 10 years ago
Closed 10 years ago
#28738 closed defect (bug) (fixed)
Plugin tests don't work anymore
Reported by: | ziodave | Owned by: | wonderboymusic |
---|---|---|---|
Milestone: | 4.0 | Priority: | normal |
Severity: | normal | Version: | 4.0 |
Component: | Plugins | Keywords: | |
Focuses: | Cc: |
Description
I cannot run anymore plugin tests using:
- bash bin/install-wp-tests.sh wordpress_test root localhost latest
- phpunit
I get the following issue:
Running as single site... To run multisite, use -c tests/phpunit/multisite.xml PHP Warning: Cannot modify header information - headers already sent by (output started at /private/tmp/wordpress-tests-lib/includes/bootstrap.php:61) in /private/tmp/wordpress/wp-includes/pluggable.php on line 1121 PHP Stack trace: PHP 1. {main}() /usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar:0 PHP 2. PHPUnit_TextUI_Command::main() /usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar:614 PHP 3. PHPUnit_TextUI_Command->run() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:129 PHP 4. PHPUnit_TextUI_Command->handleArguments() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:138 PHP 5. PHPUnit_TextUI_Command->handleBootstrap() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:606 PHP 6. PHPUnit_Util_Fileloader::checkAndLoad() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:778 PHP 7. PHPUnit_Util_Fileloader::load() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/Util/Fileloader.php:76 PHP 8. include_once() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/Util/Fileloader.php:92 PHP 9. require() /Users/david/Developer/wordpress/wp-cli/wp-content/plugins/my-plugin/tests/bootstrap.php:13 PHP 10. require_once() /private/tmp/wordpress-tests-lib/includes/bootstrap.php:85 PHP 11. wp_not_installed() /private/tmp/wordpress/wp-settings.php:109 PHP 12. wp_redirect() /private/tmp/wordpress/wp-includes/load.php:447 PHP 13. header() /private/tmp/wordpress/wp-includes/pluggable.php:1121 Warning: Cannot modify header information - headers already sent by (output started at /private/tmp/wordpress-tests-lib/includes/bootstrap.php:61) in /private/tmp/wordpress/wp-includes/pluggable.php on line 1121 Call Stack: 0.0175 525024 1. {main}() /usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar:0 0.0188 736872 2. PHPUnit_TextUI_Command::main() /usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar:614 0.0188 737104 3. PHPUnit_TextUI_Command->run() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:129 0.0188 737536 4. PHPUnit_TextUI_Command->handleArguments() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:138 0.0209 1090048 5. PHPUnit_TextUI_Command->handleBootstrap() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:606 0.0210 1098592 6. PHPUnit_Util_Fileloader::checkAndLoad() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/TextUI/Command.php:778 0.0210 1098816 7. PHPUnit_Util_Fileloader::load() phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/Util/Fileloader.php:76 0.0211 1103040 8. include_once('/Users/david/Developer/wordpress/wp-cli/wp-content/plugins/my-plugin/tests/bootstrap.php') phar:///usr/local/Cellar/phpunit/3.7.28/libexec/phpunit-3.7.28.phar/phpunit/Util/Fileloader.php:92 0.0215 1167200 9. require('/private/tmp/wordpress-tests-lib/includes/bootstrap.php') /Users/david/Developer/wordpress/wp-cli/wp-content/plugins/my-plugin/tests/bootstrap.php:13 0.1498 1881776 10. require_once('/private/tmp/wordpress/wp-settings.php') /private/tmp/wordpress-tests-lib/includes/bootstrap.php:85 0.1637 4138264 11. wp_not_installed() /private/tmp/wordpress/wp-settings.php:109 0.1941 5599752 12. wp_redirect() /private/tmp/wordpress/wp-includes/load.php:447 0.1943 5608920 13. header() /private/tmp/wordpress/wp-includes/pluggable.php:1121
I've been able to track down the issue in this revision:
r28965 | wonderboymusic | 2014-07-03 04:16:33 +0300 (Thu, 03 Jul 2014) | 4 lines Transient timeouts are untestable when `WP_INSTALLING` is defined and set to ANY value. Transient timeouts cannot be tested during multisite runs because `wpmu_create_blog()` sets `WP_INSTALLING`. I have zero idea how these tests ever passed. See #28706.
Change History (11)
#3
@
10 years ago
In order to complete the information for the ticket, the procedure to enable plugins unit tests is described here:
https://github.com/wp-cli/wp-cli/wiki/Plugin-Unit-Tests
This ticket was mentioned in IRC in #wordpress-dev by wonderboymusic. View the logs.
10 years ago
#5
@
10 years ago
I published the patch file here:
https://gist.githubusercontent.com/ziodave/10fdc7ebfb2288be2876/raw/2649d21d4255e0487ae9c19afaaa9263ebb14999/r28965-patch
I currently apply the patch in the install-wp-tests.sh
script after svn co --quiet http://develop.svn.wordpress.org/trunk/tests/phpunit/includes/
.
(https://github.com/wp-cli/wp-cli/blob/master/templates/install-wp-tests.sh, line 45)
#6
@
10 years ago
It seems that for some reason when WP checks is_blog_installed()
, it is returning false. I'm not able to reproduce this. It seems to me that it might be an issue related to caching. Is some kind of persistent caching enabled during the tests?
#7
follow-up:
↓ 10
@
10 years ago
Could be related to https://github.com/wp-cli/wp-cli/pull/1076
#8
@
10 years ago
@ziodave — What is the output of, e.g., var_dump( wp_cache_get( 'is_blog_installed' ) );
?
Could you try running that somewhere before WP runs wp_not_installed()
? (Or, just add it to right before wp_not_installed()
in wp-settings.php
.)
#10
in reply to:
↑ 7
@
10 years ago
Replying to danielbachhuber:
Could be related to https://github.com/wp-cli/wp-cli/pull/1076
I don't think the issue is related with wp-cli. The failing code is in WordPress svn:
http://develop.svn.wordpress.org/trunk/tests/phpunit/includes/
You should be able to reproduce it running the script at ln 53 of bootstrap.php
.
I traced down the issue to this line being removed:
More details: