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

add RNTester-E2E: tests for iOS and Android via Appium, WDIO and Jest #36267

Closed
wants to merge 1 commit into from

Conversation

kelset
Copy link
Contributor

@kelset kelset commented Feb 23, 2023

Summary:

The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (@mateuszm22 , @adzironman, and others) - reason why the branch lives in a fork.

Read the RFC for more details

Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

Things that will be handled as follow up work

Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Test Plan:

You can play with this locally by follow the readme.

CircleCI jobs will be added.

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Contributor A React Native contributor. p: Microsoft Partner: Microsoft Partner labels Feb 23, 2023
@react-native-bot react-native-bot added the Type: Enhancement A new feature or enhancement of an existing feature. label Feb 23, 2023
@analysis-bot
Copy link

analysis-bot commented Feb 23, 2023

Platform Engine Arch Size (bytes) Diff
android hermes arm64-v8a 8,843,684 +241
android hermes armeabi-v7a 8,152,833 +235
android hermes x86 9,349,469 +234
android hermes x86_64 9,192,198 +242
android jsc arm64-v8a 9,456,909 +46
android jsc armeabi-v7a 8,638,042 +45
android jsc x86 9,539,996 +46
android jsc x86_64 9,783,297 +49

Base commit: e64756a
Branch: main

@kelset kelset force-pushed the k+m/new-rn-tester-E2E branch 2 times, most recently from 0db60ac to 969793b Compare March 21, 2023 11:52
@kelset kelset added the p: Callstack Partner: Callstack label Apr 13, 2023
@kelset kelset marked this pull request as ready for review April 13, 2023 14:19
@kelset kelset changed the title add RNTester-E2E: tests for iOS and Android via Appium, WDIO and Jest (WIP) add RNTester-E2E: tests for iOS and Android via Appium, WDIO and Jest Apr 13, 2023
@kelset kelset force-pushed the k+m/new-rn-tester-E2E branch 4 times, most recently from 16996ad to 00932ab Compare May 25, 2023 13:23
@facebook-github-bot
Copy link
Contributor

@cortinico has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@cortinico has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

This pull request has been reverted by dd1c8a6.

@facebook-github-bot
Copy link
Contributor

@cortinico merged this pull request in 3c196fb.

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Jul 26, 2023
@cortinico cortinico reopened this Jul 26, 2023
@cortinico cortinico removed Merged This PR has been merged. Reverted labels Jul 26, 2023
@github-actions
Copy link

This pull request was successfully merged by @kelset in 3c6dbec.

When will my fix make it into a release? | Upcoming Releases

@github-actions github-actions bot added the Merged This PR has been merged. label Jul 26, 2023
@facebook-github-bot
Copy link
Contributor

@cortinico merged this pull request in 3c6dbec.

@christian-bromann
Copy link

Hey 👋 WebdriverIO maintainer here!

It's excited to see RN using WebdriverIO for their e2e testing. Please don't hesitate to reach out to me if there are any questions or issues coming up. Looking at the code changes I was wondering why you have decided to use Jest as oppose to the WebdriverIO testrunner? The testrunner was designed to allow people to scale their e2e tests and provide good reporting and plugin capabilities. For example it could simplify setting up Appium using the @wdio/appium-service.

Any feedback would be greatly appreciated and helps making WebdriverIO better. Cheers!

billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D46225747

Pulled By: cortinico

fbshipit-source-id: e5428c439afd84ed3dd219d6ada538263120d7c6
billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D47763012

Pulled By: cortinico

fbshipit-source-id: 6eb9674182b8ee97aea4784158c69bf017f379e5
billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D46225747

Pulled By: cortinico

fbshipit-source-id: e5428c439afd84ed3dd219d6ada538263120d7c6
billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D47763012

Pulled By: cortinico

fbshipit-source-id: 6eb9674182b8ee97aea4784158c69bf017f379e5
billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D46225747

Pulled By: cortinico

fbshipit-source-id: e5428c439afd84ed3dd219d6ada538263120d7c6
billnbell pushed a commit to billnbell/react-native that referenced this pull request Jul 29, 2023
…facebook#36267)

Summary:
The motivation is to create an E2E testing solution for the RNTester app that can be used to flag when things break and the release crew can use to validate more of the codebase ahead of a release.

This first PR wants to just showcase the main flow (how tests are made, where the E2E folder lives, how it's used by CircleCI) and then we can build on top of it with subsequent PRs, with the help of an umbrella issue to get the community involved in making more tests!

This work is being done cooperation with Callstack developers (mateuszm22 , adzironman, and others) - reason why the branch [lives in a fork](https://github.com/mateuszm22/react-native/tree/k%2Bm/new-rn-tester-E2E).

### [Read the RFC for more details ](react-native-community/discussions-and-proposals#684)

### Extra notes

We are still on WebDriverIO 7 because during the exploratory phase, WDIO was a bit problematic and the workarounds needed to make it work don't seem very nice - see this PR: kelset/react-native-e2e-jest-appium-webdriverio#4 --- this will be revisited in the future, once there's a better path for upgrading.

### Things that will be handled as follow up work

* upgrade to WDIO 8
* [an automated yarn run-e2e-test script](facebook#36267 (comment))
* [a small refactoring into a js script](facebook#36267 (comment))

## Changelog:

[INTERNAL] [ADDED] - Added first working configuration for e2e testing

Pull Request resolved: facebook#36267

Test Plan:
You can play with this locally by [follow the readme](https://github.com/mateuszm22/react-native/blob/k+m/new-rn-tester-E2E/packages/rn-tester-e2e/README.md).

CircleCI jobs will be added.

Reviewed By: cipolleschi

Differential Revision: D47763012

Pulled By: cortinico

fbshipit-source-id: 6eb9674182b8ee97aea4784158c69bf017f379e5
facebook-github-bot pushed a commit that referenced this pull request Aug 1, 2023
Summary:
This PR is small cleanup in `.circleci/config.yml` file. Request here: #36267 (comment)

## Changelog:
[INTERNAL] [CHANGED] - move script checking Appium server status to separate file

Pull Request resolved: #38692

Test Plan: CI Green ✅

Reviewed By: NickGerleman

Differential Revision: D47926222

Pulled By: ryancat

fbshipit-source-id: eeff338ca018549762dce46a744b80f659b4bd5d
@kelset
Copy link
Contributor Author

kelset commented Aug 1, 2023

Looking at the code changes I was wondering why you have decided to use Jest as oppose to the WebdriverIO testrunner?

They @christian-bromann - thanks for your comment! We'll surely reach out if we need help 🤗 About your question, the tl;dr is that using Jest was a strict requirement, you can read more in the RFC

facebook-github-bot pushed a commit that referenced this pull request Aug 2, 2023
Summary:
This PR is small cleanup in scripts in `rn-tester-e2e` package, it creates unified script so that we can easily pass platform as an argument. Context: #36267 (comment)

## Changelog:
[INTERNAL] [CHANGED] - Unify `test-e2e` command in `rn-tester-e2e` package

Pull Request resolved: #38701

Test Plan: CI Green ✅

Reviewed By: NickGerleman, cipolleschi

Differential Revision: D47949821

Pulled By: cortinico

fbshipit-source-id: 90bbc96281e89dec505999ff5e51db7ca78da6dc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Contributor A React Native contributor. Merged This PR has been merged. p: Callstack Partner: Callstack p: Microsoft Partner: Microsoft Partner Type: Enhancement A new feature or enhancement of an existing feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.