0

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

我想确保该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
}

在上面的例子中:

  1. testInternalAccess运行、失败并被报告为失败的测试
  2. testInsert运行和失败

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

@Test
public serverStartedOk() {}

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

如何method1知道服务器是否实际启动正常?它将如何serverstartedOk与世界交流它的状态?

4

1 回答 1

1

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

由于您希望在运行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
}

宾果游戏,这行得通!

于 2012-11-06T03:51:59.437 回答