microsoft / react-native-windows

A framework for building native Windows apps with React.
https://microsoft.github.io/react-native-windows/
Other
16.24k stars 1.13k forks source link

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

Open chrisglein opened 4 years ago

chrisglein commented 4 years ago

@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

Lower Priority

chrisglein commented 4 years ago

@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 commented 4 years ago

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

kmelmon commented 4 years ago

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 commented 3 years ago

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

rectified95 commented 3 years ago

Updated issue description with the list of view managers we need to cover.

rectified95 commented 2 years ago

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

chrisglein commented 2 years ago

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 commented 2 years ago

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

chrisglein commented 6 months ago

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