【问题标题】:Disable Ember Mirage when running tests in the browser在浏览器中运行测试时禁用 Ember Mirage
【发布时间】:2019-09-04 08:21:22
【问题描述】:

我希望能够针对我的 Mirage 服务器以及我的实际服务器依次运行测试。

我已阅读 these docs 关于禁用 Mirage 的内容,它在开发环境中按预期工作。添加下面的代码会在 http://localhost:4200 处禁用 Mirage。

 ENV['ember-cli-mirage'] = {
    enabled: false
  };

但是,在http://localhost:4200/tests 的浏览器中运行测试时,这不会禁用 mirage。

我已经在任何环境特定条件之外添加了上面的代码,因此它应该适用于所有环境。为了更好地衡量,我还尝试在三个特定于环境的条件中添加上面的代码:

 ENV['ember-cli-mirage'] = {
    enabled: false
  };

if (environment === 'production') {
  ENV['ember-cli-mirage'] = {
    enabled: false
  };
}
if (environment === 'development') {
  ENV['ember-cli-mirage'] = {
    enabled: false
  };
}
if (environment === 'test') {
  ENV['ember-cli-mirage'] = {
    enabled: false
  };
}

http://localhost:4200/tests 仍在使用 Mirage。

在浏览器中进行测试时是否可以禁用 Mirage?我希望能够轻松启用它,因此无法卸载 Mirage。

【问题讨论】:

  • 我很惊讶这不起作用。只是想确保您正在停止服务器并再次使用ember serve 重新启动。 environment.js 文件在您重新启动服务器之前不会被重新读取。

标签: ember.js ember-cli-mirage


【解决方案1】:

我误解了在验收测试中添加setupMirage(hooks); 的效果。 (docs here)

当它出现在您的验收测试中时,无论ENV['ember-cli-mirage'].enabled 是真还是假,所有请求都将进入海市蜃楼。

相反,当它不存在时,所有请求都将发送到您定义的端点,无论ENV['ember-cli-mirage'].enabled 是真还是假。

这可以解释为什么docs on enabling or disabling mirage 仅指代productiondevelopment 环境的操作。

【讨论】:

  • 这很混乱!特定于环境的配置来自 setupMirage 存在之前的时间。好奇,你在浏览器中运行时禁用的用例是什么?
  • @SamSelikoff 我们应用程序的用户注册系统非常复杂,用户可以看到许多不同的 UI 配置,具体取决于身份验证请求返回的内容。 Mirage 在自动测试每种情况下显示正确的 UI 方面非常出色,但 Mirage 服务器设置相当复杂,因此我们希望能够偶尔针对我们的真实服务器进行测试,以确保 Mirage 服务器响应与真实服务器响应不同步。
  • 出于兴趣,以下是我在实践中如何处理此问题的要点:gist.github.com/andrew-paterson/…
【解决方案2】:

您的代码对我来说看起来不错。正如@jrjohnson 建议的那样,重新启动服务器可能会有所帮助。如果这不起作用,像这样配置 environment.js 文件可能会有所帮助:

module.exports = function(environment) {

  let ENV = {
    'ember-cli-mirage': {
      enabled: true,
      directory: 'mirage'
    }
  };

  if (environment === 'test') {
    ENV['ember-cli-mirage'].enabled = false;
  }

  return ENV;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多