- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
是否可以按特定顺序调用@AfterMethod 方法?我有一个示例代码:
public class PriorityTest {
@BeforeClass(alwaysRun = true)
public void setUp() throws Exception {
System.out.println("BeforeClass PriorityTest.java");
}
@Test
public void defaultPriority(){
System.out.println("default");
}
@Test (priority = 3)
public void t1(){
System.out.println("t1");
}
@Test (priority = 2)
public void t2(){
System.out.println("t2");
}
@Test (priority = 1)
public void t3(){
System.out.println("t3");
}
@Test (priority = -1)
public void t_1(){
System.out.println("t -1");
}
@AfterMethod
public void after2(){
System.out.println("after2");
}
@AfterMethod
public void after1(){
System.out.println("after1");
}
@Test 的优先级工作得很好。我想对@AfterMethod 做同样的事情,但是当我编写代码时 @AfterMethod (priority = 1)
是编译错误。当我没有优先级运行时,总是按字母顺序排列(只有方法名称很重要)。这是输出:
BeforeClass PriorityTest.java
t -1
之后1
之后2
默认
之后1
之后2
t3
之后1
之后2
t2
之后1
之后2
t1
之后1
之后2
是否有可能以特定顺序调用该方法(例如特殊参数或注释)?
附言。我知道我可以编写一个 AfterMethod,然后按特定顺序调用方法,但我想到了很多 AfterMethod 注释。
最佳答案
@AfterMethod
不支持priority
参数。但它有 dependsOnMethods
和 dependsOnGroups
可以代替使用。
dependsOnMethods
The list of methods this method depends on. There is no guarantee on the order on which the methods depended upon will be run, but you are guaranteed that all these methods will be run before the test method that contains this annotation is run. Furthermore, if any of these methods was not a SUCCESS, this test method will not be run and will be flagged as a SKIP. If some of these methods have been overloaded, all the overloaded versions will be run.
dependsOnGroups
The list of groups this method depends on. Every method member of one of these groups is guaranteed to have been invoked before this method. Furthermore, if any of these methods was not a SUCCESS, this test method will not be run and will be flagged as a SKIP.
在您的情况下,可以使用 dependsOnMethods
。
@AfterMethod
public void after2(){
System.out.println("after2");
}
@AfterMethod(dependsOnMethods = "after2")
public void after1(){
System.out.println("after1");
}
关于java - TestNG - @AfterMethod 的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36712711/
我的测试类中有很多测试方法。我的目标是能够使用断言两次:第一次在每个测试中,第二次在每个 AfterMethod 测试中。 这是我的代码示例: @AfterMethod(alwaysRun = tr
以下是使用 testng 框架创建的示例测试用例, public class MyTest { @BeforeMethod public void beforeMethod() {
我是 selenium webdriver 的新手。我尝试在两个浏览器上运行 Testng 测试并行,但我遇到了以下错误。当尝试运行时。 package rough; import org.testn
我们正在使用 TestNG 在 java 中运行自动化测试,但同时,我们试图跟踪某些测试的运行时间以及结果。这是因为我们遇到这样的情况:TestSuite B 决定 TestSuite A 的结果。为
我正在尝试编写一个 TestNG @AfterMethod 函数,该函数本质上模仿“失败时的屏幕截图”。除了它使用 HTMLUnit 并使用 getContent() 收集 XML。 因此,这个“测试
是否可以按特定顺序调用@AfterMethod 方法?我有一个示例代码: public class PriorityTest { @BeforeClass(alwaysRun = true) publ
我有 2 个方法要在 TestNg 框架中运行,但我的代码只执行 @Test 而 @AfterMethod 不执行。 请查找结果输出。正如您所看到的,只有 AdminLogin 方法运行,Closeb
我无法在 junit 中使用 @AfterMethod,因为它属于 testng。在 junit 中是否有 @AfterMethod 的替代方案。 最佳答案 JUnit 4 使用@Before和 @A
简单的问题 - 我的 TestNG 测试类中有这样的 AfterMethod @AfterMethod public void tearDown() throws Exception { us
如果测试失败,我想截图。我不想用 try/catch block 包装所有测试方法,而是想将此逻辑添加到用 @AfterMethod 注释的方法中。 如何在用@AfterMethod注解的方法中检测当
在 TestNG 的 @afterMethod 中,我想捕获堆栈跟踪并将其包含在范围报告中,但是,我找不到好的解决方案。我意识到打印堆栈跟踪有大量线程,但没有一个线程能满足我的需求。我想要导致失败的方
在我的项目中,我有 Maven 和 TestNG 工具。我正在尝试将屏幕截图添加到 Allure 报告中。如果我直接从测试中调用带有“@Attachment”注释的方法,则一切正常。 但是如果我在“@
我有一组测试如下。 @Test public void testX(){ } @Test public void testY(){ } @Test public void testZ(){ } 我还有
好吧,我有点困惑。 public class GroupDemo { @Test() public void test1() { System.out.println("t
我正在尝试检测 @AfterMethod 中跳过的测试以进行报告。 我可以捕获失败或通过的测试,但当跳过测试时它似乎不会输入。 我的测试: @Test public void method1 () {
我有这个示例代码: public class A { @BeforeTest(groups = "group1") public void beforeTest() { System.out.
我想在每次测试后检查一些外部日志文件,如果在执行过程中出现任何错误。在 AfterMethod 中抛出异常是行不通的,因为 TestNG 的处理方式不同:它只会让配置方法失败,而不是前面的测试。 我的
对于我正在进行的研究,我需要在运行测试方法 (@Test) 后从 @AfterMethod 捕获结果状态(通过/失败)。 我一直在使用import org.testng.ITestResult;作为我
我在玩 TestNG,发现当我使用 dataProvider 时,@AfterMethod 和 @BeforeMethod 被调用了不止一次。是否可以在使用从 dataProvider 传递的所有参数
我使用的是allure V1.4.8 +TestNG。看起来 TestNG 适配器错误地将 @AfterMethod 放置在报告中 - 基本上它将 AfterMethod 从测试用例放入下一个测试用例
我是一名优秀的程序员,十分优秀!