我有使用Ember模板测试库(QUnit和testem)编写的Ember.js 2.16验收测试,用于测试Ember应用程序的常规功能。当我运行ember test
时,为其检索环境变量的“环境”始终设置为test
。
是否可以在ember test
以外的任何环境中运行test
?与--environment="my_other_test_env"
或ember build
一起使用ember serve
运行它不会改变环境。
我希望能够将参数传递给验收测试,具体取决于它们所运行的环境。是否支持此行为?如果不支持,是否有理由不这样做?我知道对于较低级别的单元测试,我不应该处理外部依赖关系,但是对于端到端的验收测试,我想在不同的环境中运行测试似乎是正常的。 >
答案 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端点。