Skip to content

Releases: open-tool/ultron

2.5.0-alpha16

30 Sep 18:54
2d091f1
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.5.0-alpha15...2.5.0-alpha16

2.5.0-alpha15

07 Aug 20:14
4b11127
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.5.0-alpha14...2.5.0-alpha15

2.5.0-alpha14

01 Aug 06:52
41b55a7
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.5.0-alpha12...2.5.0-alpha14

2.5.0-alpha12

29 Jul 21:49
4db0a4e
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.5.0-alpha11...2.5.0-alpha12

2.5.0-alpha11

26 Jul 19:17
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.5.0-alpha09...2.5.0-alpha11

2.5.0-alpha09

04 Jul 22:10
3916eef
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.3.5...2.5.0-alpha09

2.3.5

18 Mar 17:21
a108073
Compare
Choose a tag to compare

What's Changed

  • Custom Allure directory in #61

By default Allure results are saved in /data/data/<package_name>/files/allure-results.
It's possible to set a custom directory. Make sure application has WRITE permission to the directory.

UltronAllureConfig.setAllureResultsDirectory(File("directory_path"))
UltronAllureConfig.setAllureResultsDirectory(Environment.DIRECTORY_DOCUMENTS)
UltronAllureConfig.setAllureResultsDirectory() // set Environment.DIRECTORY_DOWNLOADS as target directory

If custom directory is specified allure results artifacts are copied to the desired directory at the end of test run.

If no parameters are provided to UltronAllureConfig.setAllureResultsDirectory() then you can pull artifacts from /sdcard/Download/allure-results.

  • Fix RecyclerView item search in #62

Full Changelog: 2.3.3...2.3.5

2.3.3

07 Mar 07:54
Compare
Choose a tag to compare

Compose List & RecyclerView Item Child improvements in #60

  • ComposeListItem child

old syntax:

class CustomListItem : UltronComposeListItem() {
    val status by lazy { getChild(hasTestTag(contactStatusTestTag)) }
}

new:

class CustomListItem : UltronComposeListItem() {
    val name by child { hasTestTag(contactNameTestTag) }
}

You can use both ways at the same time:

class CustomListItem : UltronComposeListItem() {
    val name by child { hasTestTag(contactNameTestTag) }
    val status by lazy { getChild(hasTestTag(contactStatusTestTag)) }
}
  • RecyclerViewItem child

Old syntax:

class CustomRecyclerItem : UltronRecyclerViewItem() {
    val name by lazy { getChild(withId(R.id.tv_name)) }
}

New:

class CustomRecyclerItem : UltronRecyclerViewItem() {
    val name by child { withId(R.id.tv_name) }
}

You can use both ways at the same time:

class CustomRecyclerItem : UltronRecyclerViewItem() {
    val name by child { withId(R.id.tv_name) }
    val status by lazy { getChild(withId(R.id.tv_status)) }
}

Full Changelog: 2.3.2...2.3.3

2.3.2

25 Feb 11:47
dd15bc8
Compare
Choose a tag to compare

What's Changed

Compose LazyList improvements in #59

Add

  • new methods to interact with LazyList item by position:
firstItem() 
item(position: Int)
getItem(position: Int): T  
getFirstItem(): T 

to use these methods you have to configure positionPropertyKey in application code and specify it in composeList declaration.

composeList(marcher =..., positionPropertyKey = ListItemPositionPropertyKey)

Read new wiki page for details - Efficient Strategies for Locating Items in Compose LazyList

  • new method for UltronComposeList
fun assertItemDoesNotExist(itemMatcher: SemanticsMatcher)

Removed

method UltronComposeListItem().assertDoesNotExist()

Full Changelog: 2.3.1...2.3.2

2.3.1

02 Dec 08:13
Compare
Choose a tag to compare

What's Changed

There are 2 new general methods:

withName(name: String)
withMetaInfo(meta: Any)

By default name is used in exceptions messages.

These data also could be used in listeners and result analyzers:

 class MetaListener: UltronLifecycleListener(){
     override fun afterFailure(operationResult: OperationResult<Operation>) {
         val name = operationResult.operation.elementInfo.name
         val metaInfo = operationResult.operation.elementInfo.meta
     }
 }

Full Changelog: 2.3.0...2.3.1