Skip to content

Commit

Permalink
Merge pull request #268 from rubensousa/test-reports
Browse files Browse the repository at this point in the history
Add allure test reports with Carioca
  • Loading branch information
rubensousa authored Sep 24, 2024
2 parents 3a222d7 + 3f73cd7 commit 06e52f2
Show file tree
Hide file tree
Showing 31 changed files with 177 additions and 286 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ jobs:
emulator-options: -no-window -no-snapshot-save -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
script: |
./gradlew uninstallAll
adb shell settings put global verifier_verify_adb_installs 0
./gradlew --build-cache dpadrecyclerview-compose:connectedDebugAndroidTest
./gradlew --build-cache sample:connectedDebugAndroidTest
./gradlew --build-cache dpadrecyclerview-testing:connectedDebugAndroidTest
Expand All @@ -129,5 +130,6 @@ jobs:
path: |
logs/**
./**/build/reports/androidTests/connected/**
./**/build/outputs/allure-results
./**/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected/**
if: always()
10 changes: 7 additions & 3 deletions dpadrecyclerview-compose/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.carioca.allure)
id 'org.jetbrains.dokka'
}

Expand All @@ -14,15 +15,17 @@ android {

defaultConfig {
minSdk versions.minSdkVersion
targetSdk versions.targetSdkVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments useTestStorageService: 'true'
testInstrumentationRunnerArguments additionalTestOutputDir: 'storage/emulated/0/recordings/com.rubensousa.dpadrecyclerview.compose.test'
testInstrumentationRunnerArguments listener: 'com.rubensousa.carioca.report.android.CariocaInstrumentedListener'
}

testOptions {
targetSdk versions.targetSdkVersion
}

buildTypes {
debug {
enableUnitTestCoverage true
enableAndroidTestCoverage true
}
release {
Expand Down Expand Up @@ -58,6 +61,7 @@ dependencies {

// Test dependencies
debugImplementation libs.androidx.test.compose.ui.manifest
androidTestImplementation libs.carioca.report
androidTestImplementation libs.androidx.compose.ui.tooling
androidTestImplementation libs.androidx.compose.material3
androidTestImplementation project(':dpadrecyclerview-testing')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import androidx.compose.ui.test.onNodeWithText
import androidx.test.espresso.Espresso
import androidx.test.espresso.matcher.ViewMatchers.withId
import com.google.common.truth.Truth.assertThat
import com.rubensousa.dpadrecyclerview.testfixtures.DefaultInstrumentedReportRule
import com.rubensousa.dpadrecyclerview.testing.KeyEvents
import com.rubensousa.dpadrecyclerview.testing.assertions.DpadViewAssertions
import org.junit.Before
Expand All @@ -16,21 +17,27 @@ import org.junit.Test

class DpadClickableIntegrationTest {

@get:Rule(order = -1)
val report = DefaultInstrumentedReportRule()

@get:Rule
val composeTestRule = createAndroidComposeRule<ComposeFocusTestActivity>()

@Before
fun setup() {
composeTestRule.waitForIdle()
Espresso.onIdle()
}

@Test
fun testPressingBackAfterClickingOnItemClearsFocus() {
// given
KeyEvents.click()
Espresso.onIdle()

// when
KeyEvents.back()
Espresso.onIdle()

// then
assertFocus(item = 0, isFocused = false)
Expand All @@ -49,6 +56,7 @@ class DpadClickableIntegrationTest {

// when
KeyEvents.click()
Espresso.onIdle()

// then
assertThat(clicks).isEqualTo(listOf(0))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import androidx.test.espresso.matcher.ViewMatchers
import com.google.common.truth.Truth.assertThat
import com.rubensousa.dpadrecyclerview.DpadRecyclerView
import com.rubensousa.dpadrecyclerview.ExtraLayoutSpaceStrategy
import com.rubensousa.dpadrecyclerview.testfixtures.DefaultInstrumentedReportRule
import com.rubensousa.dpadrecyclerview.testfixtures.DpadFocusEvent
import com.rubensousa.dpadrecyclerview.testing.KeyEvents
import com.rubensousa.dpadrecyclerview.testing.R
Expand All @@ -41,6 +42,9 @@ import org.junit.Test

class DpadComposeFocusViewHolderTest {

@get:Rule(order = -1)
val report = DefaultInstrumentedReportRule()

@get:Rule
val composeTestRule = createAndroidComposeRule<ComposeFocusTestActivity>()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import androidx.test.espresso.matcher.ViewMatchers
import com.google.common.truth.Truth.assertThat
import com.rubensousa.dpadrecyclerview.DpadRecyclerView
import com.rubensousa.dpadrecyclerview.ExtraLayoutSpaceStrategy
import com.rubensousa.dpadrecyclerview.testfixtures.DefaultInstrumentedReportRule
import com.rubensousa.dpadrecyclerview.testfixtures.DpadFocusEvent
import com.rubensousa.dpadrecyclerview.testing.KeyEvents
import com.rubensousa.dpadrecyclerview.testing.R
Expand All @@ -38,6 +39,9 @@ import org.junit.Test

class DpadComposeViewHolderTest {

@get:Rule(order = -1)
val report = DefaultInstrumentedReportRule()

@get:Rule
val composeTestRule = createAndroidComposeRule<ViewFocusTestActivity>()

Expand Down
1 change: 1 addition & 0 deletions dpadrecyclerview-test-fixtures/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ android {

dependencies {
implementation project (':dpadrecyclerview')
implementation libs.carioca.report
implementation libs.androidx.recyclerview
implementation libs.androidx.collection
implementation libs.junit
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.rubensousa.dpadrecyclerview.testfixtures

import com.rubensousa.carioca.report.android.InstrumentedReportRule
import com.rubensousa.carioca.report.android.recording.RecordingOptions

class DefaultInstrumentedReportRule(
enableRecording: Boolean = true,
) : InstrumentedReportRule(
recordingOptions = RecordingOptions(
enabled = enableRecording,
scale = 0.5f,
keepOnSuccess = false,
startDelay = 500L,
stopDelay = 1000L,
),
)

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

9 changes: 6 additions & 3 deletions dpadrecyclerview-testing/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.carioca.allure)
id 'org.jetbrains.dokka'
}

Expand All @@ -13,11 +14,8 @@ android {

defaultConfig {
minSdk versions.minSdkVersion
targetSdk versions.targetSdkVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments useTestStorageService: 'true'
testInstrumentationRunnerArguments additionalTestOutputDir: 'storage/emulated/0/recordings/com.rubensousa.dpadrecyclerview.testing.test'
multiDexEnabled true
}

buildTypes {
Expand All @@ -42,6 +40,11 @@ android {
jvmTarget = '1.8'
}

testOptions {
targetSdk versions.targetSdkVersion
}


publishing {
singleVariant('release') {
withSourcesJar()
Expand Down
Loading

0 comments on commit 06e52f2

Please sign in to comment.