我希望能够在我的幻影服务器和实际的服务器上依次运行测试。
我读过关于禁用幻影的these docs,它可以在开发环境中正常工作。添加下面的代码可以在http://localhost:4200上禁用幻影。
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仍然使用幻影。
有没有办法在浏览器中测试时禁用幻影?我希望能够很容易地启用它,所以卸载幻影不是一个选择。
发布于 2019-09-05 20:56:09
我误解了在验收测试中添加setupMirage(hooks);的效果。(docs here)
当它出现在你的验收测试中时,所有的请求都会进入幻象,不管ENV['ember-cli-mirage'].enabled是真是假。
相反,当它不存在时,所有请求都将被发送到您定义的端点,而不管ENV['ember-cli-mirage'].enabled是否为真或假。
这可能解释了为什么对于production和development环境,docs on enabling or disabling mirage只提到执行。
发布于 2019-09-05 13:55:47
你的代码在我看来没问题。也许根据@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;
};https://stackoverflow.com/questions/57784309
复制相似问题