web-dev-qa-db-ja.com

Cronを使ったプラグイン機能の単体テスト

私は現在Wordpressのユニットテストフレームワークを使ってプラグインのユニットテストを行っています。

テスト対象の機能の1つでは、定期的にユーザにメールを送信するため、PHPスクリプトは設定した時間に実行する必要があります(2分ごとなど)。

Cron機能をuniテストフレームワークと統合する方法はありますか。その場合は、次のコマンドを実行します。

phpunit

コマンドラインでは、スクリプトはn間隔ごとに実行されますか。

それとも、実際にcronを実行しなくてもcron環境をシミュレートできる方法はありますか?

ヒントをありがとう。

3
Emerson Maningo

私はあなたがサーバベースのcronジョブを参照していると仮定しています。あなたがそれに精通しているかどうかはわかりませんが、WP Cronを使うこともできます。それはコアに組み込まれたAPIです。本物のcronジョブIMHOよりも作業が少し簡単です。それは軽度の警告があります。それも強さかもしれません。

スケジュールされたイベントは、サーバーの内部時計だけでは発生しません。スケジュールされたイベントが発生する前に、ユーザーまたは何らかの種類の訪問者がサイトにアクセスする必要があります。

ユーザー/訪問者がWP Cronにアクセスすると、タイマーがチェックされ、期限が切れているタイマーが起動されます。

http://code.tutsplus.com/articles/insights-into-wp-cron-an-introduction-to-scheduling-tasks-in-wordpress--wp-23119

あなたのphpunitテストであなたの利点にこれを使用することができます。 Selenium Webドライバ http://docs.seleniumhq.org/ のようなヘッドレスブラウザを使用している場合は、これはより現実的な解決策になる可能性があります。バックエンドと同様に。

1
therons