JUnit 4 runner for ignoring muted tests
This commit is contained in:
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test
|
|||||||
|
|
||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
import org.junit.runner.Runner
|
import org.junit.runner.Runner
|
||||||
|
import org.junit.runners.BlockJUnit4ClassRunner
|
||||||
import org.junit.runners.model.FrameworkMethod
|
import org.junit.runners.model.FrameworkMethod
|
||||||
import org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
|
import org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
|
||||||
import org.junit.runners.parameterized.ParametersRunnerFactory
|
import org.junit.runners.parameterized.ParametersRunnerFactory
|
||||||
@@ -178,7 +179,7 @@ private fun mutedMessage(key: String) = "MUTED TEST: $key"
|
|||||||
private fun testKey(klass: Class<*>, methodKey: String) = "${klass.canonicalName}.$methodKey"
|
private fun testKey(klass: Class<*>, methodKey: String) = "${klass.canonicalName}.$methodKey"
|
||||||
private fun testKey(testCase: TestCase) = testKey(testCase::class.java, testCase.name)
|
private fun testKey(testCase: TestCase) = testKey(testCase::class.java, testCase.name)
|
||||||
|
|
||||||
class RunnerFactoryWithMuteInDatabase: ParametersRunnerFactory {
|
class RunnerFactoryWithMuteInDatabase : ParametersRunnerFactory {
|
||||||
override fun createRunnerForTestWithParameters(test: TestWithParameters?): Runner {
|
override fun createRunnerForTestWithParameters(test: TestWithParameters?): Runner {
|
||||||
return object : BlockJUnit4ClassRunnerWithParameters(test) {
|
return object : BlockJUnit4ClassRunnerWithParameters(test) {
|
||||||
override fun isIgnored(child: FrameworkMethod): Boolean {
|
override fun isIgnored(child: FrameworkMethod): Boolean {
|
||||||
@@ -188,12 +189,26 @@ class RunnerFactoryWithMuteInDatabase: ParametersRunnerFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isIgnoredInDatabaseWithLog(child: FrameworkMethod, parametersName: String): Boolean {
|
class RunnerWithIgnoreInDatabase(klass: Class<*>?) : BlockJUnit4ClassRunner(klass) {
|
||||||
|
override fun isIgnored(child: FrameworkMethod): Boolean {
|
||||||
|
return super.isIgnored(child) || isIgnoredInDatabaseWithLog(child)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isIgnoredInDatabaseWithLog(child: FrameworkMethod): Boolean {
|
||||||
if (isMutedInDatabase(child.declaringClass, child.name)) {
|
if (isMutedInDatabase(child.declaringClass, child.name)) {
|
||||||
System.err.println(mutedMessage(testKey(child.declaringClass, child.name)))
|
System.err.println(mutedMessage(testKey(child.declaringClass, child.name)))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isIgnoredInDatabaseWithLog(child: FrameworkMethod, parametersName: String): Boolean {
|
||||||
|
if (isIgnoredInDatabaseWithLog(child)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
val methodWithParametersKey = child.method.name + parametersName
|
val methodWithParametersKey = child.method.name + parametersName
|
||||||
if (isMutedInDatabase(child.declaringClass, methodWithParametersKey)) {
|
if (isMutedInDatabase(child.declaringClass, methodWithParametersKey)) {
|
||||||
System.err.println(mutedMessage(testKey(child.declaringClass, methodWithParametersKey)))
|
System.err.println(mutedMessage(testKey(child.declaringClass, methodWithParametersKey)))
|
||||||
|
|||||||
Reference in New Issue
Block a user