【问题标题】:How to use @BeforeTest in separate java file in testng如何在testng的单独java文件中使用@BeforeTest
【发布时间】:2019-01-22 04:28:14
【问题描述】:

我正在为一个项目编写自动化测试脚本。在这里,我将有许多测试类,我将使用相同的@BeforeTest 方法。我尝试通过创建一个基类(我在测试方法之前声明)并在我的测试类中扩展它们。但它不工作。有没有其他方法可以在单独的 java 文件中使用通用的 beforeTest 方法并将其用于我的所有测试类。

【问题讨论】:

  • 你在这里讨论什么@BeforeTest? Junit 有@Before@BeforeClass 注释,但没有@BeforeTest。您是否在使用 Junit 以外的其他测试框架?
  • 我正在使用TestNG ....(在标题中提到..为默默无闻)
  • 嗯,我还以为是“testing”的拼写错误,抱歉没用过testng
  • 如果您向我们展示您的代码,解决您的问题会容易得多。请阅读minimal reproducible example

标签: java testng


【解决方案1】:

为我的其他类使用基类对我有用。您应该使用@BeforeMethod 来满足您的需要,因为@BeforeTest 用于运行testNG.xml 文件中<test> 标记中包含的任何@Test。

public class BaseClass {
  @BeforeMethod
  public void before() {
    System.out.println("Before method");
  }  
}

然后

public class ATestClass extends BaseClass {
  @Test
  public void testOne() {
    System.out.println("testOne run");
  }
  @Test
  public void testTwo() {
    System.out.println("testTwo run");
  }
}

给我结果

试试看!

【讨论】:

    【解决方案2】:

    如果您使用的是PowerMockitoMockito,您可以通过以下方式实现。

    public abstract class ParentClass{
        @Before
        public void init() {
            System.out.println("inniinii");
           }
    }
    
    @RunWith(PowerMockRunner.class)
    public class ChildClass extends ParentClass{
    @Test
    public void test() {
        System.out.println("hello test");
          }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2012-04-28
      • 1970-01-01
      • 2015-08-15
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2013-12-09
      相关资源
      最近更新 更多