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

Build visual tree compare tests that iterate over RNTester pages #4037

Open
6 of 15 tasks
chrisglein opened this issue Feb 5, 2020 · 9 comments · Fixed by #7735
Open
6 of 15 tasks

Build visual tree compare tests that iterate over RNTester pages #4037

chrisglein opened this issue Feb 5, 2020 · 9 comments · Fixed by #7735
Labels
Area: Tests Deliverable Major item tracked for top-level planning in ADO Engineering Improvement Candidate enhancement Workstream: Component Parity Close the parity gap between RNW and RN for core RN components and their supporting APIs.
Milestone

Comments

@chrisglein
Copy link
Member

chrisglein commented Feb 5, 2020

@ddalp built out some visual tree comparison test infrastructure recently: #3754
We're going to use that more as we do new feature work, but we have a lot of test debt in everything we built before we had this or the general E2E test infrastructure. One thing we can do is take the existing content in RNTester and enumerate over it, grabbing a visual tree dump as we go. Even if it's just static (no interaction with the page), that's test coverage we don't have. Seems like a good way to bolster our test coverage.

Note that not all of the RNTester pages are testing ViewManagers. We should limit this task to only the RNTester pages that cover ViewManagers and their properties.

List of ViewManagers we want to cover - examples files in brackets:

Higher Priority / In Progress

  • Button
  • FlyoutVM (FlyoutExample)
  • ImageVM (ImageExample)
  • PopupVM (PopupExample)
  • ScrollVM (several pages: eg. ScrollViewExample)
  • SwitchVM (switchexample)
  • TextInputVM (textinputexample)
  • TextVM, VirtualTextVM, RawTextVM (textexample)
  • ViewVM
  • Pressable

Lower Priority

  • ActivityIndicatorVM (activityindicatorExample)
  • FrameworkElemVM
  • GlyphVM (GlyphExample)
  • RefreshControlManager (refreshcontrolexample)
  • RootVM
@chrisglein chrisglein added this to the MVP+ (vNext M5) milestone Feb 5, 2020
@ghost ghost added the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Feb 5, 2020
@harinikmsft harinikmsft removed the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Feb 6, 2020
@chrisglein chrisglein removed the vnext label Mar 18, 2020
@chrisglein chrisglein modified the milestones: 0.62 (M5), 0.63 (M6) Apr 14, 2020
@asklar asklar self-assigned this Apr 20, 2020
@chrisglein chrisglein added the Deliverable Major item tracked for top-level planning in ADO label Jun 15, 2020
@chrisglein
Copy link
Member Author

@kmelmon Is this issue providing any value beyond what you're already doing? Do you want me to dupe it to one of your issues or assign it over?

@kmelmon kmelmon assigned kmelmon and unassigned asklar Jul 14, 2020
@kmelmon
Copy link
Contributor

kmelmon commented Jul 14, 2020

I'll take this. I don't think it's a dupe so keeping it open for now.

@kmelmon
Copy link
Contributor

kmelmon commented Jul 15, 2020

Alex has done some prototype level work on this:

Here are the changes I made that but haven’t merged that I made:

here is the treedump library I wrote:
https://github.com/asklar/XamlTreeDump

and nuget:
https://www.nuget.org/packages/XamlTreeDump/

@kmelmon
Copy link
Contributor

kmelmon commented Nov 20, 2020

This is now part of https://github.com/microsoft/react-native-windows/projects/39 and depends directly on #6343

@kmelmon kmelmon removed their assignment Nov 20, 2020
@chrisglein chrisglein removed this from the 0.64 milestone Dec 1, 2020
@rectified95 rectified95 modified the milestones: 0.66, 0.67 Sep 7, 2021
@rectified95
Copy link
Contributor

Plenty of tests for Text, other VMs to do listed in description.

@chrisglein
Copy link
Member Author

Notes from planning poker

Issue lists ~12 view managers that were indicated as not tested. Goal is that we navigate to each of these tests and get a visual compare dump. This is not functional testing, it's just a bare bones "load the page and catch if it changes/crashes". Should it be structured as one test or individual tests for each page (assumption being that it grows over time?). How do we know what our coverage % is?

@NickGerleman
Copy link
Collaborator

Dumping each page would not be a viable solution. The test UI changes frequently, and there are elements not deterministic.

@chrisglein
Copy link
Member Author

I feel like this is superceded by #11422. @chiaramooney do you agree? Can we close this?

@chiaramooney chiaramooney added the Workstream: Component Parity Close the parity gap between RNW and RN for core RN components and their supporting APIs. label Oct 3, 2024
@chiaramooney chiaramooney removed their assignment Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Tests Deliverable Major item tracked for top-level planning in ADO Engineering Improvement Candidate enhancement Workstream: Component Parity Close the parity gap between RNW and RN for core RN components and their supporting APIs.
Projects
None yet
9 participants