【发布时间】:2020-09-10 18:28:55
【问题描述】:
我需要运行依赖测试(不是单元,而是带有 selenium 的长 UI 场景)。有与环境有关的原因,因此我必须准备一个“随机”状态,并在其他测试中使用此状态。为此,我执行了一系列操作,之后我得到一个链接,将其保存到一个方法中的静态字符串变量,该方法注释为@Order (1)。之后,在@Order注解的方法(2个及更多)中,存储在静态String变量中的链接可用
通常顺序是随机的,但如果您关注manual,那么在一个线程中一切正常。
测试的数量非常多,因此并行运行它们似乎是合乎逻辑的。对于 5.3 和更新版本,它是 no problem。我使用“配置参数并行执行顶级类,但在同一线程中执行方法”。对于普通的测试类,它是这样工作的。 而现在的问题。只需添加@Execution(ExecutionMode.CONCURRENT),订单如何停止工作。因此,我得到的不是静态变量中的链接,而是空值。 有办法解决吗?
提前谢谢你
【问题讨论】:
-
对代码的散文描述很难理解。考虑添加一个最小的代码示例来揭示您要解决的问题。
-
对不起,描述对我来说似乎很透明。下面是简单的测试类:` `
-
@Execution(ExecutionMode.CONCURRENT) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) //both on-off does not work: //@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TariffNewNonOfficialTest extends SetupEnv implements HelpMeth { private static String testUrl; @Order(1) @Test void firstTest() { /*someActons*/ testUrl=driver.getCurrentUrl(); }Order(2) 使用 testUrl。属性设置为并行执行顶级类,但在同一线程中执行方法。 -
格式化代码无法在 cmets 中正确显示。我建议你更新问题并把它放在那里。