Skip to content

yandexmobile/detekt-rules-ui-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c17b6c3 · May 28, 2024

History

17 Commits
Dec 7, 2023
May 28, 2024
Dec 7, 2023
Dec 11, 2023
Mar 29, 2024
Dec 11, 2023
May 1, 2024
Apr 9, 2024
Dec 7, 2023
Dec 7, 2023
Dec 7, 2023
Dec 7, 2023

Repository files navigation

Detekt rules for UI-tests

A set of Detekt rules to help prevent common errors in UI-tests.
[RU] Detekt: How static analysis helps to improve autotest code

Rules description

  • TestClassNamingRule:
    A test class name should fit the naming convention;

  • TestMethodNamingRule:
    Test method name should not be long and contain unnecessary words;

  • TestClassPrivateMemberRule:
    Members of test class must use private modifier;

  • IsVisibleUsageRule:
    In general, 'Kaspresso isVisible' should not be used -> use 'isDisplayed';

  • LargeScreenObjectRule:
    Split a large ScreenObject into PageElement's and combine them on this SO;

  • RestrictedKeywordRule:
    Restricted keyword for test method, ScreenObject and Scenario.

Installation and configuration

Add detekt rules in your build.gradle.kts

dependencies {
    detektPlugins("com.yandex.detekt:detekt-rules-ui-tests:0.1.1")
}

and then add this configuration section to your detekt-config.yml to activate the rules:

ui-tests:
  TestClassNamingRule:
    active: true
    includes: "**/androidTest/**"
  TestMethodNamingRule:
    active: true
    unexpectedWords: [ 'test' ]
    maxFullQualifierLength: 135
    includes: "**/androidTest/**"
  TestClassPrivateMemberRule:
    active: false
    baseTestClass: "BaseTestCase"
    includes: "**/androidTest/**"
  IsVisibleUsageRule:
    active: true
    includes: "**/androidTest/**"
  LargeScreenObjectRule:
    active: false
    allowedLinesOfCode: 110
    includes: "**/androidTest/**"
  RestrictedKeywordRule:
    active: true
    includes: "**/androidTest/**"

Contributors

primechord