selenium - selenium 中的测试未按所需顺序运行
问题描述
虽然我正在使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)
我的测试并没有按预期的顺序运行
我有 2 个测试,
第一个测试名称是:aTest_Login()
第二个测试名称是:bTest_CreateContact()
有时第二个测试在第一个测试之前运行。
解决方案
在不了解有关 的详细信息的情况@FixMethodOrder
下,它似乎是 JUnit 的事情。顾名思义,JUnit 是一个执行单元测试的框架。单元测试之间不能有任何依赖或联系(这就是单元测试的思想),所以它们的执行顺序不能影响结果,它们是可交换的。如果您想以特定顺序执行测试以进行集成和 gui 测试,我强烈建议您使用支持测试依赖项的东西,例如Test NG
在 TestNG 中,您可以定义测试组并指定测试依赖项。如果你想运行 gui 测试,第一个“root”测试可能是你的测试系统是否在线(因为如果系统离线,你所有的 gui 测试都会失败,所以只有一个失败的测试是有意义的,说系统是离线)。
@Test(groups = "login")
public void aTest_Login() {
...
}
@Test(groups = {"contacts", "creation"}, dependsOnGroups = "login")
public void bTest_CreateContact(){
// this test will only be executed if all tests of the group "login" passed
}
TestNG 有一个来自 JUnit 的迁移指南,并提供有关集成和 gui 测试的其他内容。你应该检查一下
推荐阅读
- vuejs2 - 带有 Vue-Cli 项目的 IE11:Script1002:语法错误
- c# - 当我使用属性窗口中的 pixbuf 选项将图像添加到 gtk 窗口时,Monodevelop 不断崩溃
- php - 如何修复插入表期间的语法错误?
- salesforce - 成功创建案例后自动调用闪电组件?
- python - 将两个数据集缩减为相同大小
- sql - Oracle SQL - 显示下午 5 点后记录的所有作业
- java - 如何从数据库行创建表?
- bash - 是否可以列出与 ls 模式匹配的文件?
- c# - 创建动态方法的弱委托(ref object,object[] arr)
- c++ - C++ 中的运算符 (::Type*)0 是什么意思