【问题标题】:JUnit @BeforeClass annotation compiles fine in IDE but fails Maven buildJUnit @BeforeClass 注释在 IDE 中编译良好,但 Maven 构建失败
【发布时间】:2017-12-11 22:07:23
【问题描述】:

当我写一个简单的方法如下:

 @BeforeClass
 public void setUp(){}

它在 IntellijIDEA 和 Eclipse 中都能正确编译(使用内置的 IDE Build)。 然而,相同的代码片段在 Maven 运行中失败:

Tests in error:
  initializationError(TestClass): Method setUp() should be static

不应该在编译过程中发现这个错误吗?

【问题讨论】:

  • 这不是 Maven 中的编译错误,这是它尝试运行测试的时候。
  • @BeforeClass 方法必须是静态的(原因很明显)
  • Andy - 你是对的(很抱歉,这个问题阐述得很糟糕) - 不过,这个问题不应该在编译过程中发现吗?
  • @P.错误是junit抛出的,不是java编译器,见org.junit.runners.ParentRunner#collectInitializationErrors

标签: java eclipse maven intellij-idea junit


【解决方案1】:

@BeforeClass注解的保留类型为RUNTIME,执行时会报出。

【讨论】:

    【解决方案2】:

    这与仅在运行时检测到的测试失败没有什么不同。因为您的@BeforeClass 注释附加了一个格式错误的方法,所以JUnit 会通知您测试无法因此运行,因此构建失败。

    编译与此无关。你会想要,嗯,修复你的测试,以确保它们符合 JUnit 的要求。

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2021-06-27
      相关资源
      最近更新 更多