1.概述
在本教程中,我们将使用Gradle构建工具在新JUnit 5平台上运行测试。
我们将配置一个同时支持旧版本和新版本的项目。
随便阅读Junit 5指南有关新版本的更多信息。金宝搏官网188be或者Gradle概论有关构建工具的深入信息。金宝搏官网188be
2. Gradle Setup.
首先,我们验证是否安装了4.6或更高版本的构建工具,因为这是与JUnit 5一起工作的最早版本。
最简单的方式是刚刚运行Gradle -V.命令:
$ > gradle - v ------------------------------------------------------------ Gradle 4.10.2 ------------------------------------------------------------
并且,如有必要,我们可以遵循安装获得正确版本的步骤。
一旦我们安装了所有内容,我们需要通过使用“来配置Gradlebuild.gradle.文件。
我们可以通过向构建工具提供单元测试平台来开始:
test {useJUnitPlatform()}
现在我们已经指定了平台,我们需要提供JUnit依赖项。这就是我们在JUnit 5和早期版本之间看到的显著区别。
有了早期版本,我们只需要一个依赖性。但是,在JUnit 5中,API与运行时分开,意为两个依赖项分开。
API表现为JUNIT-JUPITER-API。运行时是JUNIT-JUPITER-ENGINE对于junit 5,和JUNIT-VITEL-ENGINE对于JUnit 3或4。
我们将提供这两个人测试抄本和timeruntimeonly, 分别:
依赖关系{testimplingation'org.junit.jupiter:junit-jupiter-api:5.3.1' testruntimeonly'org.junit.jupiter:JUnit-Jupiter-Engine:5.3.1'}
3.创建测试
让我们写第一次测试。它看起来就像早期的版本:
@Test public void testadd(){assertequals(42,Integer.sum(19,23));}
现在,我们可以通过执行来运行测试Gradle清洁测试命令。
要验证我们使用JUnit 5,我们可以查看进口。进口@测试和assertequals.应该有一个包装开始org.junit.jupiter.api:
导入org.junit.jupiter.api.test;导入静态org.junit.jupiter.api.assertions.assertequals;
因此,在最后一个示例中,我们创建了一个与多年工作的“旧”功能的测试。我们现在将创建另一个例子,该示例使用JUnit 5中的一些新功能:
@Test public void testDivide() {assertThrows(arithmetionexception .class,() ->{整数。divideUnsigned(42岁,0);});}
assertThrows是junit5的新断言,取代了旧风格@Test(预期= arithmeticexception.class)。
4.使用Gradle配置JUnit 5测试
接下来,我们将探讨Gradle和Junit5之间的一些更深层次的整合。
让我们说我们在我们的套件中有两种类型的测试:长时间运行和短跑。我们可以使用JUnit 5@标签注解:
公共类CalculatorJunit5Test {@tag(“慢速”)@test public void testaddmaxinteger(){assertequals(2147483646,Integer.sum(2147183646,300000));@tag(“快”)@test public void testdivide(){assertthrows(arithmeticexception.class,() - > {integer.divideunsigned(42,0);});}}
然后,我们告诉构建工具要执行哪些工具。在我们的情况下,让我们只执行短跑(快速)测试:
测试{USEDJUNITPLATFORM {INCLUDETAGS'FAST'ENTURUDETAGS'慢速'}}
5.支持旧版本的支持
现在,它仍然可以使用新的木星引擎创建JUnit 3和4测试。甚至更多,我们可以将它们与同一项目中的新版本混合在迁移方案中。
首先,我们向现有的构建配置添加一些依赖项:
TestCompileonly'Junit:JUNIT:4.12'TESTRUTIMEONLY'ORG.JUNIT.VINTIGE:JUNIT-VINES-ENGINE:5.3.1'
注意我们的项目现在是如何拥有的JUNIT-JUPITER-ENGINE以及JUnit-Vintage-Engine。
现在我们创建一个新的课程并复制粘贴testdivide.我们之前创建的方法。然后,我们添加导入@测试和assertequals.。但是,这次我们确保使用旧版本4包开始org.junit:
导入静态org.junit.assert.asterequals;导入org.junit.test;公共类CalculatorJunit4test {@test public void testadd(){assertequals(42,Integer.sum(19,23));}}
六,结论
在本教程中,我们与JUnit 5融入了GruneLe。甚至更多,我们还增加了对版本3和4的支持。
我们已经看到构建工具为旧版本提供了出色的支持。因此,我们可以在现有项目中使用新功能,而无需更改所有现有测试。
完整的代码示例可用GitHub项目。随意使用它作为您自己项目的起点。