WordPressセットアップ:VVV を使用してWordPressをインストールしました。
PHPUnitセットアップ:Pippinのブログ にあるようにテストスイートをセットアップしました。そしてvagrant ssh
を使ってボックスマシンにログインした後にPHPUnitにアクセスします。
テストケース:テストケースを/tests/
ファイルのtest-{my-plugin-filename}.php
フォルダー内に書いています。
function test_my_plugin_method() {
$links = plugin_method();
}
どこで動けなくなったのですか?
PHPUnit
を実行すると、以下のエラーが発生します。
Error: Call to undefined function plugin_method()
次の行を追加しました。
require_once( dirname( dirname( __FILE__ ) ) . '/plugin-file.php' );
しかし、私は何かが足りないと思っています。どんな助けでも大いに感謝されるでしょう。
編集1:
私はwp scaffold plugin-tests
を実行し、それからPippinのブログで言及されているように次の行を実行しました(リンクについては上記を参照してください)。
bash bin/install-wp-tests.sh wordpress_test root '' localhost latest
最後にphpunit
を実行しました。
bootstrap.php
Bootstrap.phpファイルには何も変更はありません。
<?php
$_tests_dir = getenv( 'WP_TESTS_DIR' );
if ( ! $_tests_dir ) {
$_tests_dir = '/tmp/wordpress-tests-lib';
}
require_once $_tests_dir . '/includes/functions.php';
function _manually_load_plugin() {
require dirname( dirname( __FILE__ ) ) . '/my-plugin.php';
}
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
require $_tests_dir . '/includes/bootstrap.php';
plugin_method()
は一般に公開されていますか?クラスメソッドであるか、ネームスペースに属しているかを確認してください。
それがクラスに属している場合は、メソッドを呼び出す前にそのクラスのオブジェクトを作成する必要があります。同様に、それが名前空間メソッドであるならば、あなたは完全な名前空間で関数を呼ばなければなりません。
ユニットテストのブートストラップファイルに完全なコードを表示できますか?
私はプラグインが正しくロードされないだろうと思っています、 これがテスト実行時にmu-pluginとしてロードする方法 です。
とにかく、ここでテストをすぐに始める ためにWP CLIのコマンドwp scaffold plugin-tests
を使うことをお勧めします 。