Skip to content

Commit 83c0dc9

Browse files
committed
🧹 chore: use JUnit 5
In our internal tests + examples + integration tests
1 parent 2007919 commit 83c0dc9

File tree

47 files changed

+321
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+321
-101
lines changed

‎CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ See also the [CHANGELOG](https://github.com/cucumber/cucumber-jvm/blob/master/CH
1111

1212
### Added
1313

14+
- TODO
15+
1416
### Changed
1517

1618
### Deprecated

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ See: https://cucumber.io/support
1212
## Compatibility matrix
1313

1414
Cucumber Scala has a different release cycle than other Cucumber projects that you might use
15-
(like _cucumber-junit_).
15+
(like _cucumber-junit_). TODO
1616

1717
As a rule of thumb, you can assume that latest version of Cucumber Scala targets the latest version
1818
of Cucumber Core projects.

‎build.sbt

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,16 @@ scalaVersion := scala213
4040
// Library versions
4141

4242
val cucumberVersion = "7.23.0"
43+
val cucumberWorkardoundVersion = "7.25.1-SNAPSHOT" // TODO remove
4344
val jacksonVersion = "2.19.1"
4445
val mockitoScalaVersion = "1.17.45"
4546
val junitVersion = "4.13.2"
47+
val junitJupiterVersion = "5.13.3"
48+
val junitPlatformVersion = "1.13.3"
4649

4750
// Projects and settings
4851

4952
lazy val commonSettings = Seq(
50-
libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test,
5153
scalacOptions ++= {
5254
CrossVersion.partialVersion(scalaVersion.value) match {
5355
case Some((2, 12)) => ScalacOptions.scalacOptions212
@@ -58,6 +60,13 @@ lazy val commonSettings = Seq(
5860
}
5961
)
6062

63+
lazy val junit4SbtSupport = Seq(
64+
libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % Test
65+
)
66+
lazy val junit5SbtSupport = Seq(
67+
libraryDependencies += "com.github.sbt.junit" % "jupiter-interface" % JupiterKeys.jupiterVersion.value % Test
68+
)
69+
6170
lazy val root = (project in file("."))
6271
.settings(commonSettings)
6372
.settings(
@@ -68,19 +77,21 @@ lazy val root = (project in file("."))
6877
integrationTestsCommon.projectRefs ++
6978
integrationTestsJackson.projectRefs ++
7079
integrationTestsPicoContainer.projectRefs ++
71-
examples.projectRefs: _*
80+
examplesJunit4.projectRefs ++
81+
examplesJunit5.projectRefs: _*
7282
)
7383

7484
// Main project
7585
lazy val cucumberScala = (projectMatrix in file("cucumber-scala"))
7686
.settings(commonSettings)
87+
.settings(junit5SbtSupport)
7788
.settings(
7889
name := "cucumber-scala",
7990
libraryDependencies ++= Seq(
8091
"io.cucumber" % "cucumber-core" % cucumberVersion,
8192
// Users have to provide it (for JacksonDefaultDataTableTransformer)
8293
"com.fasterxml.jackson.module" %% "jackson-module-scala" % jacksonVersion % Provided,
83-
"junit" % "junit" % junitVersion % Test,
94+
"org.junit.jupiter" % "junit-jupiter" % junitJupiterVersion % Test,
8495
("org.mockito" %% "mockito-scala" % mockitoScalaVersion % Test)
8596
.cross(CrossVersion.for3Use2_13)
8697
),
@@ -127,11 +138,13 @@ lazy val cucumberScala = (projectMatrix in file("cucumber-scala"))
127138
lazy val integrationTestsCommon =
128139
(projectMatrix in file("integration-tests/common"))
129140
.settings(commonSettings)
141+
.settings(junit5SbtSupport)
130142
.settings(
131143
name := "integration-tests-common",
132144
libraryDependencies ++= Seq(
133-
"junit" % "junit" % junitVersion % Test,
134-
"io.cucumber" % "cucumber-junit" % cucumberVersion % Test
145+
"org.junit.jupiter" % "junit-jupiter" % junitJupiterVersion % Test,
146+
"org.junit.platform" % "junit-platform-suite" % junitPlatformVersion % Test,
147+
"io.cucumber" % "cucumber-junit-platform-engine" % cucumberWorkardoundVersion % Test
135148
),
136149
publishArtifact := false
137150
)
@@ -141,11 +154,13 @@ lazy val integrationTestsCommon =
141154
lazy val integrationTestsJackson =
142155
(projectMatrix in file("integration-tests/jackson"))
143156
.settings(commonSettings)
157+
.settings(junit5SbtSupport)
144158
.settings(
145159
name := "integration-tests-jackson",
146160
libraryDependencies ++= Seq(
147-
"junit" % "junit" % junitVersion % Test,
148-
"io.cucumber" % "cucumber-junit" % cucumberVersion % Test,
161+
"org.junit.jupiter" % "junit-jupiter" % junitJupiterVersion % Test,
162+
"org.junit.platform" % "junit-platform-suite" % junitPlatformVersion % Test,
163+
"io.cucumber" % "cucumber-junit-platform-engine" % cucumberWorkardoundVersion % Test,
149164
"com.fasterxml.jackson.module" %% "jackson-module-scala" % jacksonVersion % Test
150165
),
151166
publishArtifact := false
@@ -156,11 +171,13 @@ lazy val integrationTestsJackson =
156171
lazy val integrationTestsPicoContainer =
157172
(projectMatrix in file("integration-tests/picocontainer"))
158173
.settings(commonSettings)
174+
.settings(junit5SbtSupport)
159175
.settings(
160176
name := "integration-tests-picocontainer",
161177
libraryDependencies ++= Seq(
162-
"junit" % "junit" % junitVersion % Test,
163-
"io.cucumber" % "cucumber-junit" % cucumberVersion % Test,
178+
"org.junit.jupiter" % "junit-jupiter" % junitJupiterVersion % Test,
179+
"org.junit.platform" % "junit-platform-suite" % junitPlatformVersion % Test,
180+
"io.cucumber" % "cucumber-junit-platform-engine" % cucumberWorkardoundVersion % Test,
164181
"io.cucumber" % "cucumber-picocontainer" % cucumberVersion % Test
165182
),
166183
publishArtifact := false
@@ -169,8 +186,9 @@ lazy val integrationTestsPicoContainer =
169186
.jvmPlatform(scalaVersions = Seq(scala3, scala213, scala212))
170187

171188
// Examples project
172-
lazy val examples = (projectMatrix in file("examples"))
189+
lazy val examplesJunit4 = (projectMatrix in file("examples/examples-junit4"))
173190
.settings(commonSettings)
191+
.settings(junit4SbtSupport)
174192
.settings(
175193
name := "scala-examples",
176194
libraryDependencies ++= Seq(
@@ -182,6 +200,21 @@ lazy val examples = (projectMatrix in file("examples"))
182200
.dependsOn(cucumberScala % Test)
183201
.jvmPlatform(scalaVersions = Seq(scala3, scala213, scala212))
184202

203+
lazy val examplesJunit5 = (projectMatrix in file("examples/examples-junit5"))
204+
.settings(commonSettings)
205+
.settings(junit5SbtSupport)
206+
.settings(
207+
name := "scala-examples",
208+
libraryDependencies ++= Seq(
209+
"io.cucumber" % "cucumber-junit-platform-engine" % cucumberWorkardoundVersion % Test,
210+
"org.junit.jupiter" % "junit-jupiter" % junitJupiterVersion % Test,
211+
"org.junit.platform" % "junit-platform-suite" % junitPlatformVersion % Test
212+
),
213+
publishArtifact := false
214+
)
215+
.dependsOn(cucumberScala % Test)
216+
.jvmPlatform(scalaVersions = Seq(scala3, scala213, scala212))
217+
185218
// Version policy check
186219

187220
ThisBuild / versionScheme := Some("early-semver")
@@ -204,12 +237,12 @@ releaseProcess := Seq[ReleaseStep](
204237
runTest,
205238
setReleaseVersion,
206239
// the 2 following steps are part of the Cucumber release process
207-
//commitReleaseVersion,
208-
//tagRelease,
240+
// commitReleaseVersion,
241+
// tagRelease,
209242
releaseStepCommandAndRemaining("publishSigned"),
210243
releaseStepCommand("sonatypeBundleRelease"),
211244
setNextVersion
212245
// the 2 following steps are part of the Cucumber release process
213-
//commitNextVersion,
214-
//pushChanges
246+
// commitNextVersion,
247+
// pushChanges
215248
)

‎cucumber-scala/src/test/scala-2/io/cucumber/scala/ScalaDslStepsTest.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cucumber.scala
22

33
import io.cucumber.core.backend._
4-
import org.junit.Assert.{assertEquals, assertTrue}
5-
import org.junit.Test
4+
import org.junit.jupiter.api.Assertions.{assertEquals, assertTrue}
5+
import org.junit.jupiter.api.Test
66

77
import scala.annotation.nowarn
88
import scala.util.Try
@@ -339,8 +339,8 @@ class ScalaDslStepsTest {
339339
// The result is different between Scala versions, that's why we don't check it precisely
340340
// assertEquals("$anonfun$can_provide_location_of_step$1", matched.getMethodName)
341341
assertTrue(
342-
s"${matched.getClassName} did not contain $exceptionClassName",
343-
matched.getClassName.contains(exceptionClassName)
342+
matched.getClassName.contains(exceptionClassName),
343+
s"${matched.getClassName} did not contain $exceptionClassName"
344344
)
345345
assertEquals(exceptionFile, matched.getFileName)
346346
assertEquals(exceptionLine, matched.getLineNumber)

‎cucumber-scala/src/test/scala-3/io/cucumber/scala/ScalaDslStepsTest.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cucumber.scala
22

33
import io.cucumber.core.backend._
4-
import org.junit.Assert.{assertEquals, assertTrue}
5-
import org.junit.Test
4+
import org.junit.jupiter.api.Assertions.{assertEquals, assertTrue}
5+
import org.junit.jupiter.api.Test
66

77
import scala.annotation.nowarn
88
import scala.util.Try
@@ -338,8 +338,8 @@ class ScalaDslStepsTest {
338338

339339
// The result is different between Scala versions, that's why we don't check it precisely
340340
assertTrue(
341-
s"$matched did not contain $exceptionClassName",
342-
matched.toString.contains(exceptionClassName)
341+
matched.toString.contains(exceptionClassName),
342+
s"$matched did not contain $exceptionClassName"
343343
)
344344
assertEquals(exceptionFile, matched.getFileName)
345345
assertEquals(exceptionLine, matched.getLineNumber)

‎cucumber-scala/src/test/scala/io/cucumber/scala/ScalaBackendTest.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import io.cucumber.scala.steps.errors.incorrectclasshooks.IncorrectClassHooksDef
77
import io.cucumber.scala.steps.errors.staticclasshooks.StaticClassHooksDefinition
88
import io.cucumber.scala.steps.objects.StepsInObject
99
import io.cucumber.scala.steps.traits.StepsInTrait
10-
import org.junit.Assert.{assertEquals, assertTrue, fail}
11-
import org.junit.{Before, Test}
10+
import org.junit.jupiter.api.Assertions.{assertEquals, assertTrue, fail}
11+
import org.junit.jupiter.api.{BeforeEach, Test}
1212
import org.mockito.ArgumentMatchers.any
1313
import org.mockito.Mockito._
1414

@@ -30,7 +30,7 @@ class ScalaBackendTest {
3030

3131
private var backend: ScalaBackend = _
3232

33-
@Before
33+
@BeforeEach
3434
def beforeEach(): Unit = {
3535
// Reset mocks
3636
reset(fakeGlue, fakeLookup, fakeContainer)

‎cucumber-scala/src/test/scala/io/cucumber/scala/ScalaDslDataTableTypeTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package io.cucumber.scala
22

33
import io.cucumber.datatable.DataTable
44
import io.cucumber.scala.ScalaDslDataTableTypeTest.{Author, Cell, GroupOfAuthor}
5-
import org.junit.Assert.assertEquals
6-
import org.junit.Test
5+
import org.junit.jupiter.api.Assertions.assertEquals
6+
import org.junit.jupiter.api.Test
77

88
import scala.jdk.CollectionConverters._
99

‎cucumber-scala/src/test/scala/io/cucumber/scala/ScalaDslDefaultDataTableCellTransformerTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cucumber.scala
22

33
import io.cucumber.core.backend._
4-
import org.junit.Assert.assertEquals
5-
import org.junit.Test
4+
import org.junit.jupiter.api.Assertions.assertEquals
5+
import org.junit.jupiter.api.Test
66

77
class ScalaDslDefaultDataTableCellTransformerTest {
88

‎cucumber-scala/src/test/scala/io/cucumber/scala/ScalaDslDefaultDataTableEntryTransformerTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cucumber.scala
22

33
import io.cucumber.core.backend._
4-
import org.junit.Assert.assertEquals
5-
import org.junit.Test
4+
import org.junit.jupiter.api.Assertions.assertEquals
5+
import org.junit.jupiter.api.Test
66

77
import scala.jdk.CollectionConverters._
88

‎cucumber-scala/src/test/scala/io/cucumber/scala/ScalaDslDefaultParameterTransformerTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cucumber.scala
22

33
import io.cucumber.core.backend._
4-
import org.junit.Assert.assertEquals
5-
import org.junit.Test
4+
import org.junit.jupiter.api.Assertions.assertEquals
5+
import org.junit.jupiter.api.Test
66

77
class ScalaDslDefaultParameterTransformerTest {
88

0 commit comments

Comments
 (0)