8

現在、 GruntKarmaJasmine、およびProtractorを使用して、 AngularJSでテスト スイートを実行しています。私が使用しているデータベース ライブラリはhood.ieで、これはCouchDBの上にあるライブラリです。Gruntfile で次のコードを使用して hood.ie を開始します。

hoodie: {
  start: {
    options: {
      callback: function(config) {
        grunt.config.set('connect.proxies.0.port', config.stack.couch.port);
      }
    }
  }
},

ただし、後で自動的にリセットされる、テストを実行するための別のデータベースが必要です。このようにして、本番データはテストと競合しません。

これにどのようにアプローチすればよいですか?他の人が同じ問題に遭遇したと想像できるので、これを行うための何らかの標準的な方法があると思いますが、インターネット上で何も見つけることができません.

4

2 に答える 2

2

現在、hoodie サーバーがサポートしていないため、これは不可能のようです。これを行う最善の方法は、Hood.ie サーバー Github リポジトリで、データが保存されるフォルダーを定義するパラメーターを追加することで、自分で変更することです。 github.com/hoodiehq/hoodie-server/blob/master/lib/core/environment.js#L48 )

これに似たものが機能するはずです:

app_path: path.resolve(project_dir, argv.folder || 'data')
于 2014-06-23T07:42:42.700 に答える
0

hoodie タスクは「マルチタスク」であるため、テストに固有の hood.ie grunt タスクにテスト ターゲットを設定し、テストの実行に使用する grunt コマンドでこれを参照できます。

hoodie: {
  start: {
    options: {
      callback: function(config) {
        grunt.config.set('connect.proxies.0.port', config.stack.couch.port);
      }
    }
  },
  test: {
    options: {
      callback: function(config) {
        // Make test specific changes here.
      }
    }
  }
}

// The task that runs tests first starting test deps. 'runtests' can be anything you want.
grunt.registerTask('test', 'Run unit tests', ['hoodie:test', 'runtests']);

注: これは、フーディー タスクを参照している場合は、明示的に指定する必要があることを意味します。そうしないと、指定されたすべてのターゲットが実行されます。詳細については、マルチタスクに関するこのドキュメントを参照してください。この例では、hoodie を hoodie:start に変更して、前に定義した「開始」タスクを実行します。

于 2014-06-17T10:30:33.307 に答える