热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用于在docker中的wordpress的phpunit(从最终类继承)

如何解决《用于在docker中的wordpress的phpunit(从最终类继承)》经验,为你挑选了1个好方法。

我正在写一个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来解决.


推荐阅读
author-avatar
手机用户2502920591_700
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有