All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.yag.punner.suite.PSuiteBuilder.kt Maven / Gradle / Ivy

Go to download

Punner is a parallel JUnit test runner and maven plugin which can speed up your unit test.

There is a newer version: 0.9.17
Show newest version
package com.github.yag.punner.suite

import com.github.yag.punner.core.Punner
import org.junit.internal.builders.AllDefaultPossibilitiesBuilder
import org.junit.internal.builders.AnnotatedBuilder
import org.junit.runner.Runner
import org.junit.runners.BlockJUnit4ClassRunner
import org.junit.runners.model.RunnerBuilder
import org.slf4j.LoggerFactory

internal class PSuiteBuilder(canUseSuiteMethod: Boolean, private val overrideDefault: Boolean) : AllDefaultPossibilitiesBuilder(canUseSuiteMethod) {

    override fun annotatedBuilder(): AnnotatedBuilder {
        return PAnnotatedBuilder(this, overrideDefault)
    }

}

internal class PAnnotatedBuilder(runnerBuilder: RunnerBuilder, private val overrideDefault: Boolean) : AnnotatedBuilder(runnerBuilder) {
    override fun runnerForClass(testClass: Class<*>): Runner? {
        val runner = super.runnerForClass(testClass)
        return if (overrideDefault && (runner == null || runner is BlockJUnit4ClassRunner)) {
            LOG.debug("Override default runner with Punner.")
            Punner(testClass)
        } else {
            runner
        }
    }

    companion object {
        private val LOG = LoggerFactory.getLogger(PAnnotatedBuilder::class.java)!!
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy