- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有使用 TestNG 注释的依赖方法的类
dependsOnMethods
如果我只是从包中将其作为 TestNG 测试运行,则该测试 100% 运行良好。
当我将测试包含在 TestNG Suite 中时,方法运行不正常。是的,我正在使用:
<test name="Test" preserve-order="true">
在我的 .xml 文件中。
套件中的所有其他测试都遵循方法顺序并且运行不会出现问题。是否有任何已知信息可以说明为什么会发生这种情况?
测试用例代码:
@Test(groups={ "Administration"})
public class RoleCrudTest extends AbstractIntegrationTest
{
protected static SeleniumActionHelper action;
@Test
public void inactiveRole() throws Exception
{
SeleniumHelper helper = new SeleniumHelper();
action = new SeleniumActionHelper(driver);
helper.login();
String roleUrl = navigateToUrl("role/roles.xhtml");
driver.get(roleUrl);
assertEquals("Role:", findElementBySelector("span.portletButtonHeader").getText());
WebElement roleName = findElementById("roleName");
assertFalse(roleName.isEnabled());
WebElement deptId = findElementById("deptid");
assertFalse(deptId.isEnabled());
}
@Test(dependsOnMethods = "inactiveRole")
public void createRole() throws Exception
{
WebElement addButton = findElementById("add");
addButton.click();
waitUntilAjaxRequestCompletes();
WebElement roleName = findElementById("roleName");
roleName.click();
roleName.sendKeys("AAAAAAAA");
WebElement deptId = findElementByXpath("(//button[@type='button'])[3]");
deptId.click();
WebElement dept = findElementByXpath("//div[@id='department_panel']/ul/li[2]");
dept.click();
WebElement checkbox = findElementByXpath("//li[@id='privileges:1']/div/span/div/div");
checkbox.click();
Thread.sleep(1000);
WebElement save = findElementById("save");
save.click();
assertEquals("Role saved successfully", findElementBySelector("div.ui-growl-message > p").getText());
}
@Test(dependsOnMethods = "createRole")
public void editUndo() throws Exception
{
Thread.sleep(1000);
WebElement tableSort = findElementByXpath("//th[@id='tableSection:rolesListWrapped:j_idt85']/div/span[2]");
tableSort.click();
Thread.sleep(1000);
WebElement createdRole = findElementByXpath("//tbody[@id='tableSection:rolesListWrapped_data']/tr[1]/td/div");
createdRole.click();
Thread.sleep(1000);
WebElement roleName = findElementById("roleName");
roleName.click();
roleName.clear();
roleName.sendKeys("edited");
WebElement deptId = findElementByXpath("(//button[@type='button'])[3]");
deptId.click();
WebElement dept = findElementByXpath("//div[@id='department_panel']/ul/li[3]");
dept.click();
WebElement checkbox = findElementByXpath("//li[@id='privileges:1']/div/span/div/div/span");
checkbox.click();
WebElement checkbox2 = findElementByXpath("//li[@id='privileges:0']/div/span/div/div");
checkbox2.click();
Thread.sleep(1000);
WebElement undo = findElementById("cancel");
undo.click();
String text = findElementById("roleName").getAttribute("value");
String oldtext = "AAAAAAAA";
assertTrue(text.equals(oldtext));
}
@Test(dependsOnMethods = "editUndo")
public void editRole() throws Exception
{
Thread.sleep(1000);
WebElement createdRole = findElementByXpath("//tbody[@id='tableSection:rolesListWrapped_data']/tr[1]/td/div");
createdRole.click();
Thread.sleep(1000);
WebElement roleName = findElementById("roleName");
roleName.click();
roleName.clear();
roleName.sendKeys("AAAAAAAAedited");
WebElement deptId = findElementByXpath("(//button[@type='button'])[3]");
deptId.click();
WebElement dept = findElementByXpath("//div[@id='department_panel']/ul/li[3]");
dept.click();
WebElement checkbox = findElementByXpath("//li[@id='privileges:1']/div/span/div/div/span");
checkbox.click();
WebElement checkbox2 = findElementByXpath("//li[@id='privileges:0']/div/span/div/div");
checkbox2.click();
Thread.sleep(1000);
WebElement save = findElementById("save");
save.click();
assertEquals("Role saved successfully", findElementBySelector("div.ui-growl-message > p").getText());
}
@Test(dependsOnMethods = "editRole")
public void deleteRole() throws Exception
{
Thread.sleep(1000);
WebElement deleteButton = findElementById("tableSection:delete");
deleteButton.click();
WebElement deleteConfirm = findElementById("confirmDelete:yes");
deleteConfirm.click();
Thread.sleep(500);
assertEquals("Role deleted successfully", findElementBySelector("div.ui-growl-message > p").getText());
waitUntilAjaxRequestCompletes();
}
}
最佳答案
dependsOnMethods
是您想要的,而不是 preserve-order
(实际上,建议使用 dependsOnGroups
而不是 dependsOnMethods
,但两者都可以工作)。
如果您有一个显示问题的小测试用例,请发布它
关于java - 仅当包含在 "testng suite"中时,同一类中的依赖方法才会乱序运行;独立运行类尊重依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569080/
运行下面的 junit 会引发异常。 import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit
我想用 JUnit 4 启动一些 Suite 类,使用另一个 Suite 类。我有一个包的以下测试套件: package com.manuel.package1; import org.junit.r
我在另一个包中有一个数组列表,如下所示: String [ ] classes= {"SuiteTest1", "SuiteTest2"} 如何获取这些类并设置@SuiteClasses({})? p
我想学习 Spring 。在 STS(Spring Tool Suite)3 的情况下,有“Spring legacy Project”。 4 有一个“Spring Starter Project”,
正在尝试在客户端和服务器之间建立 SSL 连接。但每当我尝试从客户端连接时,我的服务器上都会收到 javax.net.ssl.SSLHandshakeException: no cipher suit
我正在使用全新安装的 STS 3.8.3,但无法将 JPA 方面添加到 EJB 项目: 如果我尝试创建 JPA 项目,则找不到该选项: 我确信这些曾经在 STS 中可用。我错过了什么? 最佳答案 我们
所以我一直在尝试使用我的手机通过 burp 获取请求/SSL。基本上我多次非常仔细地遵循这些步骤: Configuring your Browser to work with Burp Configu
任何机构都在他们的商店中使用 Talend SOA Suite。 如果我没记错的话,它与 Oracle SOA Suite 和 Service Bus 相比如何,因为这两个产品都实现了 EIP 模式?
我试图改变 Pivotal tc Server Developer 3.0 版的日志记录,我发现启动服务器的 java 进程从不读取 catalina base 中的 logging.properti
让我们假设我有一个相当大的组织 Spring Tool Suite (STS) 用户。这些用户正在使用一些过时的 STS 版本(例如 3.1.0)。 将这些用户升级到最新的 STS+Eclipse 的
我正在使用 DevExpress 制作的 XtraGrid Suite。我找不到任何功能来执行此操作,但我很好奇您是否可以将按钮或超链接添加到网格单元格。 上下文:我有一个事件列表。每个事件都有时间、
我希望将SPF和DKIM添加到MailChimp的域中。 该域正在通过G Suite运行,并具有以下SPF的TXT记录: v=spf1 include:_spf.google.com ~all 该域还
The before and after hook documentation on Relish仅显示 before(:suite) 在 before(:all) 之前调用。 我什么时候应该使用其中
有一个Juice Shop易受攻击的应用程序,可作为docker镜像使用。我正在Windows 10上对其进行测试。 我能够使用以下命令运行该应用程序: docker pull bkimminich/
我正在尝试使用 NetSuite 中的套件脚本关闭销售订单。 我注意到已经关闭的记录的“状态”设置为“已关闭”。我尝试在提交记录之前设置此字段,但这不起作用,并且记录仍处于“待履行”阶段。 是否还涉及
我是 Thilina,我是 Spring 工具套件的新手。我的操作系统是Windows 8。 我首先提取了“spring-tool-suite-3.1.0.RELEASE-e4.2-win32-x86
我有一个脚本,您可以将测试套件作为参数传递给: $ bash-specs a.suite b.suite 如果用户没有提供任何测试套件,则执行当前文件夹中的所有测试套件。这就是我目前的做法: loca
我目前正在尝试在日志文件中写入 JUnite Suite 失败测试的总数。 我的测试套件定义如下: @RunWith(Suite.class) @SuiteClasses({Class1.class,
我已下载 spring-tool-suite-3.6.1.RELEASE-e4.4-win32-x86_64.zip 并在尝试解压缩和安装时收到以下错误: Error 0x80010135: Path
运行程序test4_4.py时报错,empty test suite. 查找资料发现原因: 默认情况下,pycharm将检查以test开头的文件,它们是unittest.testcase的子类
我是一名优秀的程序员,十分优秀!