-
Notifications
You must be signed in to change notification settings - Fork 18
Configuration
There are 3 configs to manage Ultron framework: UltronConfig, UltronAllureConfig and UltronComposeConfig.
You can use recommended configuration and just apply it in BaseTest class (sample) :
@BeforeClass
@JvmStatic
fun config() {
UltronConfig.applyRecommended()
UltronAllureConfig.applyRecommended()
UltronComposeConfig.applyRecommended()
// these is required to finish Allure configuration for Compose part
UltronComposeConfig.addListener(ScreenshotAttachListener())
UltronComposeConfig.addListener(WindowHierarchyAttachListener())
UltronComposeConfig.addListener(DetailedOperationAllureListener())
}
UltronConfig object is responsible for configuring and managing settings related to the Espresso, EspressoWeb, and UiAutomator. It includes sub-classes and nested objects to manage different aspects of the framework.
You can set custom main settings using apply method.
UltronConfig.apply {
logToFile = true
accelerateUiAutomator = true
operationTimeoutMs = 10_000
}It provides methods to add and remove global listeners
UltronConfig.addGlobalListener(LogLifecycleListener())
UltronConfig.removeGlobalListener(LogLifecycleListener::class.java)-
UltronConfig.Espressonested Object:
Manages configurations specific to the Espresso part of the framework. Provides settings related to timeouts, view matchers, result analyzers, and action/assertion configurations.
UltronConfig.Espresso.RECYCLER_VIEW_LOAD_TIMEOUT = 20_000
UltronConfig.Espresso.RECYCLER_VIEW_OPERATIONS_TIMEOUT = 10_000
UltronConfig.Espresso.RECYCLER_VIEW_ITEM_SEARCH_LIMIT = 100
UltronConfig.Espresso.INCLUDE_VIEW_HIERARCHY_TO_EXCEPTION = true // false by default
UltronConfig.Espresso.setResultAnalyzer { operationResult ->
// set custom operations result analyzer
}-
UltronConfig.Espresso.ViewActionConfigandUltronConfig.Espresso.ViewAssertionConfignested Objects:
Manage configurations for Espresso view actions and view assertions, respectively. Provide settings for allowed exceptions and result handlers.
UltronConfig.Espresso.ViewActionConfig.allowedExceptions.add(CustomViewException::class.java)
UltronConfig.Espresso.ViewAssertionConfig.allowedExceptions.add(CustomViewException::class.java)-
UltronConfig.Espresso.WebInteractionOperationConfignested Object:
Manages configurations for Espresso web interaction operations. Provides settings for allowed exceptions and result handlers.
UltronConfig.Espresso.WebInteractionOperationConfig.allowedExceptions.add(CustomJSException::class.java)-
UltronConfig.UiAutomatornested Object:
Manages configurations specific to the UiAutomator part of the framework. Provides settings related to timeouts, result analyzers, and UiDevice configurations.
UltronConfig.UiAutomator.OPERATION_TIMEOUT = 15_000
val device = UltronConfig.UiAutomator.uiDevice
UltronConfig.UiAutomator.UiObject2Config.allowedExceptions.add(CustomViewException::class.java)-
UltronConfig.UiAutomator.UiObjectConfigandUltronConfig.UiAutomator.UiObject2Confignested Objects:
Manage configurations for UiAutomator operations using UiSelector and BySelector, respectively. Provide settings for allowed exceptions and result handlers.
-
UltronConfig.Lognested Object:
Allows you to specify date format for log messages
UltronConfig.Log.dateFormat = "MM-dd HH:mm:ss.SSS"Help us to configure Allure report.
UltronAllureConfig.apply {
addScreenshotPolicy = mutableSetOf(
AllureAttachStrategy.TEST_FAILURE,
AllureAttachStrategy.OPERATION_FAILURE
)
addHierarchyPolicy = mutableSetOf(
AllureAttachStrategy.TEST_FAILURE,
AllureAttachStrategy.OPERATION_FAILURE
)
attachLogcat = false
attachUltronLog = true
addConditionsToReport = true
detailedAllureReport = true
}It also allow us to add or remove RunListener.
UltronAllureConfig.addRunListener(LogcatAttachRunListener())
UltronAllureConfig.removeRunListener(LogcatAttachRunListener::class.java)Manages configurations for Compose part of the framework
UltronComposeConfig.apply {
operationTimeoutMs = 10_000
lazyColumnOperationTimeoutMs = 15_000
operationPollingTimeoutMs = 100
lazyColumnItemSearchLimit = 100
}Contains methods to add or delete Compose operations listener.
UltronComposeConfig.addListener(ScreenshotAttachListener())
UltronComposeConfig.removeListener(ScreenshotAttachListener::class.java)