我可以在Ember测试中使用“测试”以外的环境吗?

时间:2018-08-21 18:28:27

标签: ember.js

我有使用Ember模板测试库(QUnit和testem)编写的Ember.js 2.16验收测试,用于测试Ember应用程序的常规功能。当我运行ember test时,为其检索环境变量的“环境”始终设置为test

是否可以在ember test以外的任何环境中运行test?与--environment="my_other_test_env"ember build一起使用ember serve运行它不会改变环境。

我希望能够将参数传递给验收测试,具体取决于它们所运行的环境。是否支持此行为?如果不支持,是否有理由不这样做?我知道对于较低级别的单元测试,我不应该处理外部依赖关系,但是对于端到端的验收测试,我想在不同的环境中运行测试似乎是正常的。 >

1 个答案:

答案 0 :(得分:2)

您可以使用自己的环境变量:

运行TEST_ENV=...

$ TEST_ENV=special ember test

将其添加到您的应用配置中:

// config/environment.js
if (environment === 'test') {
    ENV.testingEnvironment = process.env.TEST_ENV;
    ...
}

并在您的验收测试中使用它,例如:

import ENV from '../../config/environment';

alert(ENV.testingEnvironment); // outputs 'special'

我正在使用类似的方法将生产版本部署到暂存环境,但是只更改了配置中的一些api端点。