Ċ import Ġorg . gradle . api . tasks . testing . logging . Test Log Event Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Compile Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Jvm Options Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġ// ĠKotlin ĠJVM Ġplugin Ġto Ġtarget Ġthe ĠJVM ĊĠĠĠ Ġkotlin (" jvm ") ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ" 1 . 3 . 3 1 " ĊĊĠĠĠ Ġ// ĠThe ĠMaven Ġplugin Ġfor Ġpublishing ĊĠĠĠ Ġmaven ĊĊĠĠĠ Ġ// ĠCode ĠCoverage Ġplugin ĊĠĠĠ Ġj aco co ĊĊĠĠĠ Ġ// ĠKotlin Ġlinter ĊĠĠĠ Ġid (" org . jl le its ch uh . gradle . kt lint ") Ġversion Ġ" 7 . 1 . 0 " ĊĊĠĠĠ Ġ// Ġdependency Updates Ġ- Ġa Ġtask Ġto Ġdetermine Ġwhich Ġdependencies Ġhave Ġupdates ĊĠĠĠ Ġid (" com . github . ben - man es . versions ") Ġversion Ġ" 0 . 2 1 . 0 " Ċ } Ċ Ċ configure < Java Plugin Convention > Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġ" com . st ef an zh " ĊĠĠĠ Ġversion Ġ= Ġ" 1 . 0 . 2 " ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 Ċ } Ċ Ċ // ĠNull Ġsafety Ġfor ĠKotlin Ġprojects Ġthrough Ġthe ĠSpring ĠInitial izr : Ċ // Ġhttps :// github . com / spring - io / initial izr / issues / 5 9 1 Ċ tasks . with Type < Kotlin Compile < Kotlin Jvm Options >> Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ("- X js r 3 0 5 = strict ") ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġj center () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġ// ĠKotlin Ġlibraries ĊĠĠĠ Ġimplementation ( platform ( kotlin (" bom ", Ġversion Ġ= Ġ" 1 . 3 . 3 1 "))) ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ")) ĊĊĠĠĠ Ġ// ĠJ Unit Ġ 5 ĊĠĠĠ Ġtest Implementation ( en forced Platform (" org . junit : junit - bom : 5 . 3 . 2 ")) ĠĠ Ġ// Ġuse ĠJ Unit Ġ 5 ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter - api ") ĠĠĠĠĠĠĠĠĠĠ Ġ// ĠJ Unit Ġ 5 Ġpublic ĠAPI Ġfor Ġwriting Ġtests Ġand Ġextensions ĊĠĠĠ Ġtest Runtime Only (" org . junit . jupiter : junit - jupiter - engine ") ĠĠĠĠĠĠĠĠĠĠ Ġ// ĠJ Unit Ġ 5 Ġengine Ġto Ġrun Ġtests ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter - params ") ĠĠĠĠĠĠĠ Ġ// ĠJ Unit Ġ 5 Ġparameter ized Ġtests Ċ } Ċ Ċ // ĠTest Ġsettings Ċ val Ġtest Ġby Ġtasks . getting ( Test :: class ) Ġ{ ĊĠĠĠ Ġuse JUnit Platform () Ġ Ġ// Ġenable ĠGradle Ġto Ġrun ĠJ Unit Ġ 5 Ġtests ĊĊĠĠĠ Ġ// Ġlog Ġskipped Ġand Ġfailed Ġtests ĊĠĠĠ Ġtest Logging Ġ{ ĊĠĠĠĠĠĠĠ Ġevents Ġ= Ġset Of ( Test Log Event . SKIP PED , ĠTest Log Event . FAILED ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠJ aco co ĠPlugin Ċ jac oco Ġ{ ĊĠĠĠ Ġtool Version Ġ= Ġ" 0 . 8 . 3 " ĊĠĠĠ Ġreports Dir Ġ= Ġfile ("$ build Dir / reports / jac oco ") Ċ } Ċ Ċ // ĠJ aco co ĠCoverage ĠReport Ċ val Ġj aco co Test Report Ġby Ġtasks . getting ( J aco co Report :: class ) Ġ{ ĊĠĠĠ Ġreports Ġ{ ĊĠĠĠĠĠĠĠ Ġhtml . isEnabled Ġ= Ġtrue Ġ// Ġhuman Ġreadable ĊĠĠĠĠĠĠĠ Ġxml . isEnabled Ġ= Ġtrue Ġ Ġ// Ġrequired Ġby Ġcover alls ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠJ aco co ĠEn force ĠCode ĠCoverage Ċ val Ġj aco co Test Coverage Verification Ġby Ġtasks . getting ( J aco co Coverage Verification :: class ) Ġ{ ĊĠĠĠ Ġviolation Rules Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠEvery Ġclass Ġshould Ġbe Ġtested ĊĠĠĠĠĠĠĠ Ġrule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement Ġ= Ġ" CLASS " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter Ġ= Ġ" CLASS " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" COVER ED RATIO " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= ĠBigDecimal . valueOf ( 1 . 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCoverage Ġon Ġlines Ġof Ġcode ĊĠĠĠĠĠĠĠ Ġrule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement Ġ= Ġ" CLASS " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter Ġ= Ġ" LINE " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" COVER ED RATIO " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= ĠBigDecimal . valueOf ( 1 . 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġthe Ġsuccess Ġof Ġthe Ġbuild Ġdepends Ġon ĠJ aco co Ċ test . final ized By ( jac oco Test Coverage Verification , Ġj aco co Test Report ) Ċ Ċ // Ġalways Ġrun Ġtests Ġbefore Ġcode Ġcoverage Ġis Ġcollected Ċ jac oco Test Report . depends On ( test ) Ċ jac oco Test Coverage Verification . depends On ( test ) Ċ Ċ // Ġexecute Ġlinter s Ġon Ġcheck Ċ val Ġcheck : ĠDefault Task Ġby Ġtasks Ċ val Ġk tl int Check : ĠDefault Task Ġby Ġtasks Ċ check . depends On ( kt lint Check ) Ċ