Skip to content

Instantly share code, notes, and snippets.

@angelcervera
Last active October 25, 2020 09:38
Show Gist options
  • Select an option

  • Save angelcervera/7bf5c1e5b023d477f7fe1e2b963e208b to your computer and use it in GitHub Desktop.

Select an option

Save angelcervera/7bf5c1e5b023d477f7fe1e2b963e208b to your computer and use it in GitHub Desktop.
Execution order in ScalaTest
package com.acervera.osm4scala.spark
import org.scalatest.matchers.should.Matchers
import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach}
import org.scalatest.wordspec.AnyWordSpec
class ScalaTestExecutionOrderSpec extends AnyWordSpec with Matchers with BeforeAndAfterAll with BeforeAndAfterEach {
override protected def beforeAll(): Unit = {
println("BEFORE ALL ...........")
super.beforeAll()
}
override protected def afterAll(): Unit = {
println("AFTER ALL ...........")
super.afterAll()
}
override protected def beforeEach(): Unit = {
println("BEFORE EACH ...........")
super.beforeEach()
}
override protected def afterEach(): Unit = {
println("AFTER EACH ...........")
super.afterEach()
}
"WHEN" should {
println(s"INIT SHOULD > ${System.currentTimeMillis()}")
"SHOULD 1" when {
println(s"INIT WHEN 1 > ${System.currentTimeMillis()}")
"IN 1_1" in {
println(s"in 1_1 ${System.currentTimeMillis()}")
assert(true)
Thread.sleep(250)
}
println(s"MIDDLE SHOULD 1 > ${System.currentTimeMillis()}")
"IN 1_2" in {
println(s"in 1_2 ${System.currentTimeMillis()}")
assert(true)
Thread.sleep(250)
}
println(s"END WHEN 1 > ${System.currentTimeMillis()}")
}
println(s"MIDDLE SHOULD > ${System.currentTimeMillis()}")
"SHOULD 2" when {
println(s"INIT WHEN 2 > ${System.currentTimeMillis()}")
"IN 2_1" in {
println(s"in 2_1 ${System.currentTimeMillis()}")
assert(true)
Thread.sleep(250)
}
println(s"MIDDLE SHOULD 2 > ${System.currentTimeMillis()}")
"IN 2_2" in {
println(s"in 2_2 ${System.currentTimeMillis()}")
assert(true)
Thread.sleep(250)
}
println(s"END WHEN 2 > ${System.currentTimeMillis()}")
}
println(s"END SHOULD > ${System.currentTimeMillis()}")
}
}
/*
INIT SHOULD > 1603618708112
INIT WHEN 1 > 1603618708114
MIDDLE SHOULD 1 > 1603618708136
END WHEN 1 > 1603618708137
MIDDLE SHOULD > 1603618708137
INIT WHEN 2 > 1603618708138
MIDDLE SHOULD 2 > 1603618708139
END WHEN 2 > 1603618708141
END SHOULD > 1603618708141
BEFORE ALL ...........
BEFORE EACH ...........
BEFORE EACH ...........
in 1_2 1603618708526
BEFORE EACH ...........
BEFORE EACH ...........
in 1_1 1603618708256
AFTER EACH ...........
AFTER EACH ...........
in 2_1 1603618708782
AFTER EACH ...........
in 2_2 1603618709034
AFTER EACH ...........
AFTER ALL ...........
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment