【问题标题】:How to listen to Test Suite changes in order to change some configurations如何收听测试套件更改以更改某些配置
【发布时间】:2012-06-01 02:44:21
【问题描述】:

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

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

遗憾的是,Spring 既不支持收听JUnit TestSuites,也不支持JUnit 支持TestSuites 的侦听器概念。

【问题讨论】:

    标签: java junit junit4 test-suite spring-test


    【解决方案1】:

    如果您希望在 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
    

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 2021-07-07
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2016-02-25
      • 2011-07-16
      相关资源
      最近更新 更多