【发布时间】:2019-11-30 04:40:40
【问题描述】:
根据https://github.com/webdriverio/webdriverio/issues/1500,webdriverio 测试运行器将为每个规范文件加载配置文件,这会阻止我们在这些规范(和会话)之间持久化/共享数据/状态。
我想知道如何解决它。我想它应该是可行的,因为测试运行器本身知道每次加载配置文件时它将运行哪个规范,尽管配置文件实际上包含所有规范文件,如下所示
specs: [
'test/spec/**'
],
只是不知道怎么做。
底线是将数据保存在磁盘上的临时文件中。但是,这很丑陋。
【问题讨论】:
-
测试应该尽可能
atomic。我也不认为您可以控制测试运行程序的顺序,这可能会导致您在测试中的依赖关系破坏您的测试。话虽如此,您可以通过使用密码或用户名等 ENV 变量来共享数据。 -
不,我不想更改测试运行程序序列。考虑到这一点,几乎所有应用程序测试场景都需要用户已经注册,而注册可能很耗时。因此,我们希望跨功能文件/会话重用用户。但是,由于测试运行程序重新加载配置文件(以及之后的所有其他内容),我们无法持久/共享用户信息。这似乎是 JavaScript 特定的问题。例如,Java 没有这个问题,因为通常整个测试运行共享同一个 JVM,所以我们绝对可以在测试运行中持久化数据。
标签: webdriver-io test-runner specs