您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

selenium单元测试-如何在测试中按顺序运行测试?

selenium单元测试-如何在测试中按顺序运行测试?

您不能保证JUnit 中测试 的执行顺序。

*

通常,JUnit按照在源文件中定义的顺序执行测试方法,但是并非所有的JVM都保证这样做(尤其是JVM 7)。如果某些方法是从抽象基测试类继承的,那么这可能也不成立。(这听起来像您的情况,但我无法从您的描述中看出来)。

那么,您该怎么做才能解决您的问题呢?有两种解决方案。

在原始示例中,您实际上只有一个测试(验证),但是您有4种方法,两种设置(createUser,joinUserToRoom)和一种拆卸(deleteUser)。因此,您的第一个选择是使用TestRule,尤其是ExternalResource,更好地定义您的测试用例。ExternalResource允许您定义测试之前/之后的行为,类似于@Before/@After。但是,这样做的好处ExternalResource是您可以将其排除在测试范围之外。

因此,您将在外部资源中创建/删除用户

public class UsesExternalResource {
     @Rule
     public ExternalResource resource= new ExternalResource() {
         @Override
         protected void before() throws Throwable {
            // create user
         };

         @Override
         protected void after() {
            // destroy user
         };
     };

     @Test
     public void testJoinUserToRoom() {
        // join user to room
        // verify all ok
     }
}

对我来说,这更容易理解,而且您可以进行独立测试,这是一件好事。这就是我要做的,但是您将需要对测试进行一些重构。您也可以使用RuleChain堆叠这些规则。

如果确实要在测试方法之间引入依赖关系,则第二种选择是查看TestNG,在其中可以定义从一个测试到另一个测试的依赖关系。

其他 2022/1/1 18:14:26 有473人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶