如何从angular2运行时检测到我在e2e测试模式下运行?我有一个会话刷新间隔,我不想在测试模式下设置,以避免量角器出现同步问题。如何检测angular2 web应用程序处于测试模式
一个明显的答案是寻找一个URL参数。有没有一个肮脏的解决方案?
编辑(赏金之前的说明): 量角器连接到角(1或2),以便在评估任何事情之前等待所有未完成的工作完成。这意味着所有优秀的角度promises
或任何活动的角度timer
将挂起量角器测试(并最终导致它们失败)。最常见的解决方案是设置browser.ignoreSynchronization = true
,但这会迫使我在回调链中嵌套所有e2e测试或使用一堆睡眠。可能都是。因此,看起来我被困在一块岩石和一个艰难的地方,要么有写真e2e测试的实际经验,要么围绕特定的应用代码行设置条件,以便在“测试模式”(eww,丑陋)时不运行。我选择了更容易的e2e测试,因为我期望以数百种方式编写它们,到目前为止,我们只谈到一个在测试期间不重要的间隔(会话刷新间隔为30分钟)。
从全局变量(例如ENV)获取环境非常普遍。 – estus
我对Angular2使用'browser.ignoreSynchronization = true',不必等待模型在更改后解决。当'browser.ignoreSynchronization = true'是一个问题并且迫使你入睡时,你能描述一个样本吗? –
@JuanmiRodriguez每次有异步的事情都完成了。如更改“页面”或通过网络获取数据。 – Hampus