作者:手机用户2502920591_700 | 来源:互联网 | 2022-12-24 11:53
我正在写一个wordpressplugin,并想为它创建一个phpunit测试环境.为此,我使用php:7.2-apache基本容器创建了一个docker容器,并通过图像上的phar archive在其上安装了phpunit.之后我设置了一些环境变量并使用了以下bashscript,它是由"wp scaffold plugin-tests"创建的bashscript,作为入口点.
# INSTALL WP-CORE
wp core download --path="${WPPATH}" --allow-root
waitforit -t 60 database:3306 -- wp config create --dbuser="${WPDBUSER}" --dbpass="${WPDBPASS}" --dbname="${WPDBNAME}" --dbhost="${WPDBHOST}" --path="${WPPATH}" --allow-root
wp db create --path="${WPPATH}" --allow-root
wp core install --url="${WPURL}" --title="SpitzeDev" --admin_user="${ADMINUSER}" --admin_password="${ADMINPASS}" --admin_email="${ADMINMAIL}" --path="${WPPATH}" --allow-root
chown www-data:www-data "/var/www/html" -R
# Install WP-Testsuite for PHPUnit
if [ ! -d $WP_TESTS_DIR ]; then
mkdir -p $WP_TESTS_DIR
svn co --quiet https://develop.svn.wordpress.org/tags/$(wp core version --allow-root --path=${WPPATH})/tests/phpunit/includes/ $WP_TESTS_DIR/includes
svn co --quiet https://develop.svn.wordpress.org/tags/$(wp core version --allow-root --path=${WPPATH})/tests/phpunit/data/ $WP_TESTS_DIR/data
fi
# Configure WP-Testuite for PHPUnit
if [ ! -f wp-tests-config.php ]; then
download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
# remove all forward slashes in the end
WP_CORE_DIR=$(echo ${WPPATH} | sed "s:/\+$::")
sed -i "s:dirname( __FILE__ ) . '/src/':'${WP_CORE_DIR}/':" "$WP_TESTS_DIR"/wp-tests-config.php
sed -i "s/youremptytestdbnamehere/$WPDBNAME/" "$WP_TESTS_DIR"/wp-tests-config.php
sed -i "s/yourusernamehere/$WPDBUSER/" "$WP_TESTS_DIR"/wp-tests-config.php
sed -i "s/yourpasswordhere/$WPDBPASS/" "$WP_TESTS_DIR"/wp-tests-config.php
sed -i "s|localhost|${WPDBHOST}|" "$WP_TESTS_DIR"/wp-tests-config.php
fi
phpunit
该脚本正常工作,直到调用phpunit.但随后抛出了以下异常:
"致命错误:类PHPUnit_Util_Test可能不会继承自第18行的/tmp/wordpress-tests-lib/includes/phpunit6-compat.php中的最终类(PHPUnit\Util\Test)"
我真的不明白这个错误是怎么发生的.如果我使用这个我的插件的phpunit测试错误不会被抛出.如果在我当地的机器上使用这些测试,他们的工作就可以了.
1> piersb..:
尝试使用phpunit 7.0.3和PHP 7.1.6使用wordpress核心测试框架时,我遇到了这个问题
通过切换到phpunit 6.1.0和PHP 7.0.20来解决.