【问题标题】:Grunt and hood.ie test databaseGrunt 和 hood.ie 测试数据库
【发布时间】:2014-06-02 07:49:20
【问题描述】:

我目前正在使用GruntKarmaJasmineProtractorAngularJS 上运行我的测试套件。我正在使用的数据库库是hood.ie,它是CouchDB 之上的一个库。我在 Gruntfile 中使用以下代码启动 hood.ie:

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

但是,我希望有一个单独的数据库来运行测试,之后会自动重置。这样,生产数据不会与测试冲突。

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

【问题讨论】:

  • couchdb 是如何配置的?
  • CouchDB是由hood.ie服务器配置和运行的,所以很难说。

标签: javascript gruntjs couchdb jasmine hoodie


【解决方案1】:

目前,这似乎是不可能的,因为帽衫服务器不支持它。解决此问题的最佳方法是在Hood.ie server Github repository 自己修改它,通过添加一个参数来定义将存储数据的文件夹,该文件夹目前硬编码为“数据”(https://github.com/hoodiehq/hoodie-server/blob/master/lib/core/environment.js#L48)

类似的东西应该可以工作:

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

【讨论】:

    【解决方案2】:

    由于 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 任务时需要明确说明,否则所有指定的目标都将运行。 See this documentation on multitasks for more info。在此示例中,您将 hoodie 更改为 hoodie:start 以运行之前定义的“开始”任务。

    【讨论】:

    • 这仍然会启动 hood.ie 服务器的同一个实例,所以它使用相同的数据 => 我们如何解决这个问题?
    • 似乎连帽衫开始只允许您通过 --www 参数更改服务位置。如果您需要更改底层沙发 url,您可能可以使用环境变量,例如COUCH_URL 见github.com/hoodiehq/hoodie-server/blob/master/lib/core/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多