如何在WordPress phpunit测试中保留表数据

时间:2017-08-03 作者:chown

我想知道是否有一种方法可以让用于WoprAddress的phpunit不删除我在测试期间创建的任何数据?

1 个回复
SO网友:J.D.

通常,您不希望这样做,因为这可能会无意中影响在创建数据的测试之后运行的测试。

如果有一些数据需要在单个测试用例中对多个测试可用,可以使用wpSetUpBeforeClass(), 然后在中再次移除wpTearDownAfterClass().

例如REST API category controller test from core:

class WP_Test_REST_Categories_Controller extends WP_Test_REST_Controller_Testcase {
    protected static $administrator;
    protected static $subscriber;

    public static function wpSetUpBeforeClass( $factory ) {
        self::$administrator = $factory->user->create( array(
            \'role\' => \'administrator\',
        ) );
        self::$subscriber = $factory->user->create( array(
            \'role\' => \'subscriber\',
        ) );
    }

    public static function wpTearDownAfterClass() {
        self::delete_user( self::$administrator );
        self::delete_user( self::$subscriber );
    }

    // [snip]
}
否则,如果您只想在测试中保留一些数据库更改,可能出于调试目的,您可以使用commit_transaction().

    public function test_something() {

        do_something();

        $this->commit_transaction();
    }

结束

相关推荐

Theme styling for plugins

我有一个插件,它有自己的CSS,用于在使用相关短代码时生成的内容。我正在尝试创建一个主题来重新设置我网站前端的样式,但由于这个插件有自己的CSS,我如何在新主题中修改它?