Hexa
06/19/2019, 7:52 AMimport io.kotlintest.AbstractProjectConfig
import io.kotlintest.IsolationMode
object ProjectConfig : AbstractProjectConfig() {
fun isolationMode(): IsolationMode = IsolationMode.InstancePerTest
private var started: Long = 0
override fun beforeAll() {
started = System.currentTimeMillis()
}
override fun afterAll() {
val time = System.currentTimeMillis() - started
println("overall time [ms]: " + time)
}
}
thanksforallthefish
06/19/2019, 8:06 AMpackage io.kotlintest.provided
?Hexa
06/19/2019, 8:06 AMHexa
06/19/2019, 8:07 AMthanksforallthefish
06/19/2019, 8:07 AMsrc/test/kotlin/io/kotlintest/provided
Hexa
06/19/2019, 8:08 AMHexa
06/19/2019, 8:09 AMthanksforallthefish
06/19/2019, 8:10 AMHexa
06/19/2019, 8:17 AMisolationMode
is greyed outHexa
06/19/2019, 8:17 AMHexa
06/19/2019, 8:18 AMHexa
06/19/2019, 8:26 AMthanksforallthefish
06/19/2019, 8:56 AMisolationMode
is a Spec
property. not sure if you can do it at project level, but you can try
package io.kotlintest.provided
import io.kotlintest.AbstractProjectConfig
import io.kotlintest.IsolationMode
import io.kotlintest.Spec
import io.kotlintest.TestCase
class ProjectConfig : AbstractProjectConfig() {
override fun listeners() = listOf(IsolationModeListener)
object IsolationModeListener : Spec {
override fun isolationMode(): IsolationMode? = IsolationMode.InstancePerLeaf
override fun closeResources() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun isInstancePerTest(): Boolean {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun testCases(): List<TestCase> {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
}
it might work (don't know, don't have time to test it)sam
06/19/2019, 2:09 PMsam
06/19/2019, 2:09 PMsam
06/19/2019, 2:10 PMsam
06/19/2019, 2:11 PMsam
06/19/2019, 2:22 PMsrc/test/kotlin/io/kotlintest/provided
and you must have package io.kotlintest.provided at the topHexa
06/19/2019, 8:04 PMHexa
06/19/2019, 8:05 PMimport io.kotlintest.AbstractProjectConfig
import io.kotlintest.IsolationMode
import io.kotlintest.Spec
import io.kotlintest.TestCase
class ProjectConfig : AbstractProjectConfig() {
override fun listeners() = listOf(IsolationModeListener)
object IsolationModeListener : Spec {
override fun isolationMode(): IsolationMode = IsolationMode.InstancePerTest
override fun closeResources() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun isInstancePerTest(): Boolean {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun testCases(): List<TestCase> {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
// init {
// System.exit(0)
// }
}
Hexa
06/19/2019, 8:05 PMoverride fun isInstancePerTest() = true
in one of my test classes then the test immediately failsHexa
06/19/2019, 8:08 PMpackage io.kotlintest.provided
Hexa
06/19/2019, 8:09 PMsam
06/19/2019, 8:14 PMsam
06/19/2019, 8:14 PMHexa
06/19/2019, 8:16 PMHexa
06/19/2019, 8:16 PMHexa
06/19/2019, 8:17 PMHexa
06/19/2019, 8:17 PMsam
06/19/2019, 8:17 PMsam
06/19/2019, 8:17 PMsam
06/19/2019, 8:17 PMsam
06/19/2019, 8:18 PMabstract class MySpec : FunSpec() {
override fun isolationMode ...
}
sam
06/19/2019, 8:18 PMsam
06/19/2019, 8:18 PMHexa
06/19/2019, 8:20 PMHexa
06/19/2019, 8:20 PMoverride fun parallelism(): Int = 100
Hexa
06/19/2019, 8:20 PMHexa
06/19/2019, 8:20 PMsam
06/19/2019, 8:20 PMsam
06/19/2019, 8:20 PMHexa
06/19/2019, 8:20 PMclass ProjectConfig : AbstractProjectConfig() {
override fun parallelism(): Int = 100
override fun listeners() = listOf(IsolationModeListener)
object IsolationModeListener : Spec {
override fun closeResources() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun isInstancePerTest(): Boolean = true
override fun testCases(): List<TestCase> {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
}`
Hexa
06/19/2019, 8:20 PMHexa
06/19/2019, 8:20 PMsam
06/19/2019, 8:21 PMsam
06/19/2019, 8:21 PMHexa
06/19/2019, 8:21 PMHexa
06/19/2019, 8:21 PMsam
06/19/2019, 8:21 PMHexa
06/19/2019, 8:21 PMsam
06/19/2019, 8:21 PMHexa
06/19/2019, 8:21 PMsam
06/19/2019, 8:21 PMHexa
06/19/2019, 8:21 PMsam
06/19/2019, 8:21 PMsam
06/19/2019, 8:22 PMHexa
06/19/2019, 8:22 PMtestImplementation(
'org.junit.jupiter:junit-jupiter-api:5.4.2',
'org.junit.jupiter:junit-jupiter-engine:5.4.2',
'org.junit.vintage:junit-vintage-engine:5.4.2'
)
testImplementation 'io.kotlintest:kotlintest-runner-junit5:3.3.2'
testImplementation "io.mockk:mockk:1.9.2"
Hexa
06/19/2019, 8:22 PMsam
06/19/2019, 8:22 PMsam
06/19/2019, 8:22 PMHexa
06/19/2019, 8:22 PMHexa
06/19/2019, 8:22 PMHexa
06/19/2019, 8:23 PMuseJUnitPlatform()
sam
06/19/2019, 8:23 PMsam
06/19/2019, 8:23 PMsam
06/19/2019, 8:23 PMHexa
06/19/2019, 8:24 PMHexa
06/19/2019, 8:24 PMHexa
06/19/2019, 8:24 PMHexa
06/19/2019, 8:32 PMparallelism()
would love to see it worksam
06/19/2019, 8:32 PMsam
06/19/2019, 8:32 PMsam
06/19/2019, 8:32 PMHexa
06/19/2019, 10:14 PMHexa
06/19/2019, 10:14 PM