0

我的班级中有 30 个@Test方法和 2 个Java方法。@Test我需要在具体方法之后运行这 2 个Java@Test方法,例如 TestMethod5(). 我怎样才能做到这一点 ?

例如:

@Test
public void TestMethod5() {

/* compiled code */

}

public void Method1(){/* compiled code */};
public void Method2{/* compiled code */};

需要2个方法:

1) 使用 testng.xml
2) 使用 Intellij IDEA

注意:@BeforeMethod并且@AfterMethod仅适用于extends classname命令。这 2 个 Java 方法用方法检查按钮和标签的呈现,assertTrue()所以我不想把我的基类和它们弄乱。


是的,这些方法是测试的一部分(以及未来类似的测试),但我不能只是复制它们的内容并粘贴到我想要的每个方法中......然后@Test方法将被弄乱(大代码)。我只需要检查这些方法中标签和按钮的渲染:

 public void method1_ButtonsTest() {

  assertTrue1();
  assertTrue2();

 }


 public void method2_LabelsTest() {

  assertTrue3();
  assertTrue4();
 }


@Test
public void Test1();

@Test
public void Test2();

@Test
public void Test3();

@Test
public void Test4();

@Test
public void Test5();

@Test
public void Test6();


@Test
public void Test7();

@Test
public void Test8();
4

2 回答 2

1

为什么不能只调用这些方法?

@Test public void testMethod5() {
    ...
    method1();
    method2();
}
于 2012-07-25T16:03:34.047 回答
0

如果您不想修改基类并且不想直接在测试中调用方法,那么您可以在测试类中添加另一个 @AfterMethod 并且只运行您调用的测试用例的方法,然后在基类中调用@AfterMethod,如下所示:

@AfterMethod(alwaysRun = true)
public void postTestCase(ITestResult _result) {
    if (_result.getMethod().getMethodName().equals("Test1")){
          System.out.println("Do something here...");
    }
    //Call the @AfterMethod in the base class
    super.postTestCase(_result);
}
于 2014-02-07T18:23:03.427 回答