【问题标题】:Why does SpringJUnit4ClassRunner not work with surefire parallel=methods?为什么 SpringJUnit4ClassRunner 不能与 surefire 并行 = 方法一起使用?
【发布时间】:2015-01-09 01:36:21
【问题描述】:

当我使用surefire设置parallel=methods时,为什么我的测试会抛出随机异常?

【问题讨论】:

    标签: java spring junit maven-3 maven-surefire-plugin


    【解决方案1】:

    这是因为 JUnit 只为每个测试类创建一个 Runner 实例,在使用 parallel=methods 时被多个线程使用。 SpringJUnit4ClassRunner 只创建了一个 TestContextManager,它将测试实例存储在实例字段中,因此它不是线程安全的。

    当您使用 parallel=classes 时,一切都应该没问题,因为 JUnit 会创建一个运行器,每个线程都有一个专用的 TestContextManager

    我已经提交了一个错误:https://jira.spring.io/browse/SPR-12421

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2021-12-25
      • 2017-10-17
      • 1970-01-01
      • 2018-03-09
      • 2021-06-14
      • 2012-10-09
      • 2020-03-18
      • 2017-11-21
      相关资源
      最近更新 更多