1

我有许多 Spring Test 类(使用 定义@RunWith(SpringJUnit4ClassRunner)),我想将它们分组到测试套件中,以便为每个套件而不是每个测试类加载一次新配置。

现在我TestExecutionListener对每个 Spring 测试都有一个监听器,它将重新加载配置,但我想保存它,因为许多测试共享相同的配置。

遗憾的是,Spring既不支持监听JUnit TestSuites,也不JUnit支持 s 的监听器概念TestSuite

4

1 回答 1

2

如果您希望在 junit 测试套件之前/之后执行操作,您可以使用@BeforeClass@AfterClass,甚至是@ClassRule。您可以在那里为整个套件进行设置。使用以下示例:

@RunWith(Suite.class)
@SuiteClasses({ ExpectedFailureTest.class, RetryTest.class })
public class BeforeClassSuite {
  @BeforeClass
  public static void beforeClass() {
    System.out.println("beforeClass");
  }

  @AfterClass
  public static void afterClass() {
    System.out.println("afterClass");
  }

  @ClassRule
  public static ExternalResource resource = new ExternalResource() {
    @Override
    protected void before() throws Throwable {
      System.out.println("before");
    };

    @Override
    protected void after() {
      System.out.println("after");
    };
  };
}

这产生作为输出:

before
beforeClass
... output from tests
afterClass
after
于 2012-05-25T14:24:02.490 回答