Javascript Grunt和hood.ie测试数据库

Javascript Grunt和hood.ie测试数据库,javascript,gruntjs,couchdb,jasmine,hoodie,Javascript,Gruntjs,Couchdb,Jasmine,Hoodie,我目前正在使用和运行我的测试套件。我正在使用的数据库库是,它是位于。我在GrunFile中使用以下代码启动hood.ie: hoodie: { start: { options: { callback: function(config) { grunt.config.set('connect.proxies.0.port', config.stack.couch.port); } } } }, 但是,我希望有一个单独的数据库来运行

我目前正在使用和运行我的测试套件。我正在使用的数据库库是,它是位于。我在GrunFile中使用以下代码启动hood.ie:

hoodie: {
  start: {
    options: {
      callback: function(config) {
        grunt.config.set('connect.proxies.0.port', config.stack.couch.port);
      }
    }
  }
},
但是,我希望有一个单独的数据库来运行测试,它会在之后自动重置。这样,生产数据就不会与测试冲突


我应该如何处理这个问题?我假设有某种标准的方法可以做到这一点,因为我可以想象其他人也遇到过同样的问题,但我在互联网上找不到任何东西。

由于连帽衫任务是一项“多任务”,你可以在你的帽子里有一个测试目标。即特定于测试的咕噜任务,然后在用于运行测试的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更改为hoodie:start以运行前面定义的“开始”任务。

目前,这似乎是不可能的,因为hoodie服务器不支持它。最好的方法是自己修改它,添加一个参数来定义存储数据的文件夹,该文件夹目前硬编码为“data”()

类似的方法应该可以奏效:

app_path: path.resolve(project_dir, argv.folder || 'data')

这仍然会启动hood.ie服务器的同一个实例,因此它使用相同的数据=>我们如何解决这个问题?hoodie start似乎只允许您通过--www参数更改服务位置。如果您需要更改基础coach url,看起来您可能可以使用env vars,例如coach_url,请查看couchdb是如何配置的?couchdb是由hood.ie服务器配置和运行的,因此很难说。