2
0

Results transmit via interceptor.

This commit is contained in:
2024-11-11 13:56:24 +03:00
parent 36d60dbf39
commit 63010918ee
4 changed files with 50 additions and 0 deletions

View File

@@ -13,6 +13,8 @@ import com.kaspersky.components.composesupport.config.addComposeSupport
import com.kaspersky.kaspresso.idlewaiting.KautomatorWaitForIdleSettings
import com.kaspersky.kaspresso.kaspresso.Kaspresso
import com.kaspersky.kaspresso.testcases.api.testcase.TestCase
import com.kaspersky.kaspresso.testcases.core.sections.AfterTestSection
import com.kaspersky.kaspresso.testcases.core.testcontext.BaseTestContext
import com.kaspersky.kaspresso.testcases.core.testcontext.TestContext
import java.util.Locale
import org.junit.After
@@ -30,6 +32,7 @@ open class BaseTest<LaunchActivity : Activity>(
) : TestCase(kaspressoBuilder = Kaspresso.Builder.simple {
kautomatorWaitForIdleSettings = KautomatorWaitForIdleSettings.boost()
}.apply {
testRunWatcherInterceptors.add(ResultTestRunWatcherInterceptor())
if (isEnabledCompose) addComposeSupport()
}) {
@get:Rule
@@ -84,4 +87,14 @@ open class BaseTest<LaunchActivity : Activity>(
}
ResultTestsData.putResult(instrumentation, uiDevice)
}
fun runWithGrade(grade: Int, testName: String, steps: TestContext<Unit>.() -> Unit) {
ResultTestsData.testGrade[testName] = grade
run(testName, steps)
}
fun beforeWithGrade(grade: Int, testName: String, actions: BaseTestContext.() -> Unit): AfterTestSection<Unit, Unit> {
ResultTestsData.testGrade[testName] = grade
return before(testName, actions)
}
}

View File

@@ -0,0 +1,9 @@
package ru.samsung.test.core.core
import com.kaspersky.kaspresso.testcases.core.sections.MainTestSection
import com.kaspersky.kaspresso.testcases.core.testcontext.TestContext
fun MainTestSection<Unit, Unit>.runWithInit(grade: Int, steps: TestContext<Unit>.() -> Unit, testName: String) {
this.run(steps)
}

View File

@@ -0,0 +1,27 @@
package ru.samsung.test.core.core
import android.app.Instrumentation
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import com.kaspersky.kaspresso.interceptors.watcher.testcase.TestRunWatcherInterceptor
import com.kaspersky.kaspresso.testcases.models.info.TestInfo
import ru.samsung.test.core.utils.ResultTestsData
class ResultTestRunWatcherInterceptor: TestRunWatcherInterceptor {
override fun onTestStarted(testInfo: TestInfo) {
val grade: Int = ResultTestsData.testGrade[testInfo.testName] ?: 0
ResultTestsData.setupTest(grade)
super.onTestStarted(testInfo)
}
override fun onMainSectionFinishedSuccess(testInfo: TestInfo) {
val grade: Int = ResultTestsData.testGrade[testInfo.testName] ?: 0
ResultTestsData.successTest(grade)
super.onMainSectionFinishedSuccess(testInfo)
}
override fun onTestFinished(testInfo: TestInfo, success: Boolean) {
ResultTestsData.putResult(InstrumentationRegistry.getInstrumentation(), UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()))
super.onTestFinished(testInfo, success)
}
}

View File

@@ -12,6 +12,7 @@ object ResultTestsData {
private var totalTests = 0
private var maxGrade = 0
private var passTests = 0
val testGrade: MutableMap<String, Int> = mutableMapOf()
fun setupTest(grade: Int) {
totalTests++