質問: activate_plugin( wp_content_dir . '/plugins/example-plugin/example-plugin.php', '', true, false ); $this->assertnotwperror( $result ); } } しかし、私はこのエラーが出ます:1) plugintest::test_plugin_activation plugin file does not exist. failed asserting that wp_error object (...) is not an instance of class "wp_error". 私は手動でチェックしました、そして私はwordpressの管理者パネルを通してプラグインを有効にしたり無効にしたりすることができます。
回答: wp_unittestcaseでは既にbootstrap.phpとしてプラグインをロードしているので、実際にはmu-pluginを使ってプラグインをアクティブにすることはできません。私はあなたのプラグインのアクティベーションをテストするためにあなたが提案することができます:do_action('activate_' . full_abspath_to_your_plugin_php)を呼び出す、ここでfull_abspath_to_your_plugin_phpは以下のようになります:var/www/html/wordpress/wp-content/plugins/hello-world/hello-world.phpこの例では、hello-worldプラグインは、指定されたユーザーの起動時の機能を取り消します。class activationeventtest extends wp_unittestcase { const plugin_basename = 'var/www/html/wordpress/wp-content/plugins/hello-world/hello-world.php'; public function testactivatewithsupport() { $this->factory()->user->create( [ 'user_email' => 'hello@world.org', 'user_pass' => 'reallyheavypasword', 'user_login' => 'hello', 'user_role' => 4, 'role' => 4 ] ); do_action( 'activate_' . static::plugin_basename ); $user = get_user_by( 'login', 'hello' ); $this->assertempty( $user->caps ); $this->assertempty( $user->roles ); } }