我看到有新的JUnit木星介绍根据JUnit 5用户指南。
JUnit 5= JUnit平台+ JUnit木星+ JUnit年份
我对我在库中使用的同名注释感到困惑。这两个有什么显著的区别吗?
org.junit.Testorg.junit.jupiter.api.Test上面链接页面中的说明将注释org.junit.jupiter.api.Test解释如下:
表示方法是测试方法。与JUnit 4的@Test注释不同,这个注释不声明任何属性,因为JUnit木星中的测试扩展是基于它们自己的专用注释运行的。除非重写这些方法,否则这些方法是继承的。
据我所知,主要的区别是新的注释属性被专用的注释和方法(例如)所取代。( assertTimeout(...))与旧的@Test(timeout = 1000)不同。
但是,文档中提到了来自JUnit 4的旧注释JUnit,但没有清楚地解释版本JUnit 5中相同注释的用途,这让我感到惊讶的是,它没有标记为@Deprecated --这意味着在JUnit 5中仍然有使用该注释的目的,对吗?
我的问题是,org.junit.Test在JUnit 5中的目的是什么,为什么不被反对,我的选择应该是基于上述两个注释之间的。
发布于 2018-02-18 18:21:26
org.junit.Test是而不是JUnit5中的,该类是由您对JUnit Vintage的依赖提供的。
JUnit Vintage包括JUnit Vintage测试引擎和类(如org.junit.Test ),这允许您在JUnit5测试的同时运行JUnit4测试。这是一种反向可压缩性度量。
如果您只想使用JUnit5构造(并将JUnit4排除在项目之外),那么只需放弃对JUnit Vintage的依赖,而只关注org.junit.jupiter.api.Test。
如果需要并行运行JUnit4和JUnit5测试(可能在偏头痛/中断期间),则保留对JUnit Vintage的依赖,但使用org.junit.jupiter.api.Test编写所有新的测试用例。
更新:对此作出回应.
我仍然不明白为什么不反对
org.junit.Test。
它根本不存在于JUnit木星中(因此废弃是没有意义的),在JUnit葡萄酒中也不推荐它,因为它是JUnit葡萄酒的核心元素。但是,我想我可以看到您来自哪里;您升级到了JUnit5,令人困惑的是,没有@Deprecated的类路径上仍然可以使用org.junit.Test,因此没有明确的指示它的“不使用”状态。也许您应该考虑在运行JUnit4时是否需要/需要任何支持的JUnit5结构。如果您不需要这样做,那么就不要包含对JUnit Vintage的依赖,就像org.junit.Test从来不存在一样。
https://stackoverflow.com/questions/48853312
复制相似问题