栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

可以* 保证套件中测试
的执行顺序(如果使用Suite),但是不能通过反射找到测试类的执行顺序(例如,如果您在Eclipse中运行包)
,或来自Maven或ant的一组测试)。这可能由ant或maven定义,但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,在其中可以定义从一个测试到另一个测试的依赖关系。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号