8

私の現在の状況は、grunt を使用して高速アプリの製品版を作成し (すべての js/css を最小化してマージし、すべてのファイルを適切な場所にコピーする)、環境変数を設定するスクリプトを実行する必要がある (私のアプリTEST モードで実行している場合にのみテスト ハーネスを提供します)、空の Mongo テスト データベースを作成し、アプリケーション ディレクトリで npm start を呼び出します。次に、Chrome または Phantom から手動でテストを実行する必要があります。 grunt は環境変数を設定し、サーバーを実行し、テストを実行してから、サーバーを停止します (将来、すべてが成功した場合は、デプロイも行うとよいでしょう)。ただし、アプリをうなり声で実行しようとすると、完了するとすぐに停止します。

アプリを起動し、起動するまで待ってからテストを実行するにはどうすればよいですか?

4

2 に答える 2

11

gruntを介した高速 Web サーバー タスク用のプラグインであるgrunt-expressを確認した場合。

エクスプレスキープアライブ

このサーバーは、grunt が実行されている間のみ実行されることに注意してください。grunt のタスクが完了すると、Web サーバーが停止します。この動作は、次のようにタスク リストの最後にエクスプレス キープアライブ タスクを追加することで変更できます。

grunt.registerTask('myServer', ['express', 'express-keepalive']);
これで、grunt myServer を実行すると、手動で終了するまで Express サーバーが維持されます。

このような機能は、 のようなタスクを実行することでアドホックに有効にすることもできますgrunt express express-keepalive

この設計により、grunt-contrib-qunit プラグインの qunit タスクなど、直後に実行される別のタスクと組み合わせて grunt-express を柔軟に使用できます。Express タスクを常に非同期にすると、そのようなユース ケースは発生しなくなります。

ガイドgrunt-contrib-qunitパッケージから、ヘッドレス PhantomJS インスタンスで QUnit 単体テストを実行するために使用されます。また、最後の行に注意してください。エクスプレスを常に非同期にするように強制すると、役に立たなくなります。

のnpmリンクgrunt-express

于 2013-04-09T19:21:54.213 に答える