我需要对以下内容进行哪些更改?

我想确保testInsert方法仅在testInternalAccess通过且testInternalAccess不算作失败时才运行。

@Test
public void testInternalAccess() {
    URL url = null;
    try {
        url = new URL("http://internalpage");
        InputStream is = url.openConnection().getInputStream();
    } catch (Exception e) {
        fail();
    }
}

@Test(groups = "database", dependsOnMethods = "testInternalAccess")
public void testInsert() {
  // some code
}


在上面的示例中:


testInternalAccess运行,失败并被报告为失败测试
testInsert运行失败


或者,使用创建者的TestNG示例

@Test
public serverStartedOk() {}

@Test(dependsOnMethods = { "serverStartedOk" })
public method1() {}


method1如何知道服务器是否真正正常启动? serverstartedOk如何与世界交流?

最佳答案

根据我们上面的讨论,以下是简要概述。

您希望在运行类中的所有测试之前运行方法testinternalAcecess,请使用@BeforeClass

@BeforeSuite
public void testInternalAccess() {
    URL url = null;
    try {
        url = new URL("http://internalpage");
        InputStream is = url.openConnection().getInputStream();
    } catch (Exception e) {
        fail();
    }
}


该方法仅运行一次,然后在套件中运行所有测试!然后您的测试方法如下所示

@Test(groups = "database")
public void testInsert() {
  // some code
}


宾果游戏,这将工作!

10-05 18:26