更新junit会在@Rule和TestName处出现编译错误

时间:2016-07-14 05:59:51

标签: java maven junit junit4 rule

一直使用@Rule junit使用4.12。但今天更新到4.5

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.5</version>
    </dependency>

上编译代码时出错
@Rule
public TestName name = new TestName();
  

包org.junit.rules不存在

     

找不到符号[ERROR]符号:class Rule [ERROR] location:package org.junit

这已被删除了吗?有什么替代品吗?

1 个答案:

答案 0 :(得分:1)

从版本4.12迁移到4.5感觉更像是降级而不是更新。

@Rule4.7中引入了{p> junit,因此无法找到。

现在junit最稳定的版本是4.12,至少这是您在maven repository中可以找到的最新版本。但是,junit5是在7.7.2016中引入的,如果应用此依赖项,则可以使用它:

<dependency>
   <groupId>org.junit</groupId>
   <artifactId>junit5-api</artifactId>
   <version>5.0.0-SNAPSHOT</version>
   <scope>test</scope>
</dependency>