Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Execute connectedAndroidTest in CI #21

Closed
1 task done
eldcn opened this issue Jun 2, 2024 · 0 comments · Fixed by #48
Closed
1 task done

Execute connectedAndroidTest in CI #21

eldcn opened this issue Jun 2, 2024 · 0 comments · Fixed by #48
Assignees
Labels
enhancement New feature or request

Comments

@eldcn
Copy link
Contributor

eldcn commented Jun 2, 2024

Problem

Currently we are not executing any UI tests in the pipeline, but only the unit tests as part of the build gradle tasks. This way we might miss issues in our UI tests, as they need to be executed explicitly locally.

Solution

  • Include execution of UI tests as part of the pull requests workflow
  • Implement a screen recording mechanism of running UI tests (via a test rule), and upload video files only for failing tests. This way we can analyze directly in the pipeline what when wrong

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines
@eldcn eldcn added the enhancement New feature or request label Jun 2, 2024
@eldcn eldcn mentioned this issue Jun 2, 2024
1 task
@PSchmiedmayer PSchmiedmayer moved this from Backlog to Next Steps in Project Planning Jun 5, 2024
@eldcn eldcn mentioned this issue Jun 13, 2024
1 task
eldcn added a commit that referenced this issue Jun 19, 2024
# *Instrumentation tests*

- Add `HiltApplicationTestRunner` to execute instrumented android tests
with hilt
- Introduce `ComposeContentActivity` in `design` module, in order to be
able to start single screen instrumented tests in non-app modules - see
`OnboardingScreenTest.kt` in `onboarding` module for example usage
- Introduce test identifier (test tags) on relevant compose nodes of the
screens in order to reference in UI tests
- Introduce some extension helper functions on `ComposeTestRule` and
`Modifier`
- Add `OnboardingScreenTest` in onboarding module using fake repository
(via a test hilt module) and screen display and click interaction
- `Simulator` - Introduced the concept of simulators. Wrappers around
`ComposeTestRule` with a DSL-like API to interact with a certain
composable screen.
- `app`
- `AppNavigationTest` - Several test methods that invoke navigation via
`Navigator` component and ensure display of the expected screen
- `OnboardingFlowTest` tests the display of the initial onboarding
screens and the navigation to the next expected one
- Included several simulators that can also be reused in future tests -
We can think of extracting all the simulators in a separate module for
reusability among modules

TODO:
- Add Github action to run `connectedAndroidTest` (issue #21) in CI and
include in codecov

## ♻️ Current situation & Problem
*Link any open issues or pull requests (PRs) related to this PR. Please
ensure that all non-trivial PRs are first tracked and discussed in an
existing GitHub issue or discussion.*


## ⚙️ Release Notes 
*Add a bullet point list summary of the feature and possible migration
guides if this is a breaking change so this section can be added to the
release notes.*
*Include code snippets that provide examples of the feature implemented
or links to the documentation if it appends or changes the public
interface.*


## 📚 Documentation
*Please ensure that you properly document any additions in conformance
to [Spezi Documentation
Guide](https://github.com/StanfordSpezi/.github/blob/main/DOCUMENTATIONGUIDE.md).*
*You can use this section to describe your solution, but we encourage
contributors to document your reasoning and changes using in-line
documentation.*


## ✅ Testing
*Please ensure that the PR meets the testing requirements set by CodeCov
and that new functionality is appropriately tested.*
*This section describes important information about the tests and why
some elements might not be testable.*


## 📝 Code of Conduct & Contributing Guidelines 

By submitting creating this pull request, you agree to follow our [Code
of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md):
- [ ] I agree to follow the [Code of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md).

Co-authored-by: Paul Schmiedmayer <[email protected]>
PSchmiedmayer added a commit that referenced this issue Jun 26, 2024
# Setup Android Tests CI Setup

## ♻️ Current situation & Problem
- Addresses #16
- Closes #21

## ⚙️ Release Notes 
- Setup Android Tests CI Setup

## ☑️ Remaining Issues
- [x] Report Code Coverage: I have build the rough setup for running the
tests but the code coverage report currently doesn't work as expected
for the Android tests. Codecov seems to merge reports for the same
commit so we can just upload them all in different builds. Would be
amazing if you can take a look at this @eldcn
- [x] Contact Tests Fail: It seems like the contact Android tests fail
locally and on the CI. Good as a test for the setup, would be great if
we can fix them as part of this PR @Basler182

## 📝 Code of Conduct & Contributing Guidelines 

By submitting creating this pull request, you agree to follow our [Code
of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md):
- [x] I agree to follow the [Code of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md).

---------

Co-authored-by: Eldi Cano <[email protected]>
@github-project-automation github-project-automation bot moved this from Next Steps to Done in Project Planning Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants