3

簡単な背景です。Cucumber.js を使用して Express/Node アプリで BDD を実行しようとしています。これは Rails で非常にうまく機能するので、同じフレームワークを維持したかったのです。私の問題は、テストを実行するには、サーバーを手動で起動する必要があることです。

たとえば、私のテスト/シナリオでは、ゾンビ モジュールの browser オブジェクトを使用してページにアクセスしました。this.browser.visit(path, function(){ ... });

これを機能させるには、cucumber.jsを実行する前に、常にnpm startまたはnode app.jsを実行する必要があります。テストを実行する前に手動で起動するのではなく、コマンド ラインから cucumber.js を呼び出してテストを実行するときにサーバーが起動するようにしたいと考えています。

私の失敗した試み:

Cucumber + Makefile を使用したサンプル Express アプリ

  1. 上記のリンクは、Makefile を使用して Node.js サーバーを起動し、テストを実行するサンプル リポジトリです。そのファイルをコピーして編集して自分のプロジェクトで使用しようとしましたが、エラーが発生し続けます。

    { [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect' }

    サーバーを手動で実行してから Makefile を実行すると、テストが機能します。

  2. Grunt.js

理想的には、Grunt を使用してテストを管理したいのですが、同じ問題が発生しています。grunt-cucumber をいじり始めましたが、テストを実行する前にサーバーを起動するオプションがありません。

4

1 に答える 1

0

grunt.js を grunt-cucumber と一緒に使用し、現在のディレクトリでサーバーを起動するgrunt-connectを使用します。

次に、最初に接続サーバーを起動してからキュウリ テストを実行するエイリアス タスクを定義できます。

grunt.registerTask("your-task-name", ["connect", "cucumber"]);
于 2013-03-27T11:39:42.107 に答える