ReactUwpTestApp -> RNTesterApp (#8540)
* ReactUwpTestApp -> RNTesterApp The name ReactUwpTestApp is an artifact of when `ReactUwp` still existed, and having a specific test bundle. Now the app is just a frame to load RNTester, plus side native test code that will soon be extracted. This PR renames ReactUwpTestApp to a more accurate RNTesterApp. It also removes some stale scripts that have been unused for more than a year. * Change files
|
@ -65,16 +65,9 @@ jobs:
|
||||||
- task: CmdLine@2
|
- task: CmdLine@2
|
||||||
displayName: Set LocalDumps
|
displayName: Set LocalDumps
|
||||||
inputs:
|
inputs:
|
||||||
script: $(Build.SourcesDirectory)\.ado\scripts\SetupLocalDumps.cmd ReactUWPTestApp
|
script: $(Build.SourcesDirectory)\.ado\scripts\SetupLocalDumps.cmd RNTesterApp
|
||||||
workingDirectory: $(Build.SourcesDirectory)
|
workingDirectory: $(Build.SourcesDirectory)
|
||||||
|
|
||||||
- task: CmdLine@2
|
|
||||||
displayName: Set up AppVerifer on ReactUWPTestApp
|
|
||||||
inputs:
|
|
||||||
script: regedit /S $(Build.SourcesDirectory)\.ado\scripts\ReactUWPTestApp.reg
|
|
||||||
workingDirectory: $(Build.SourcesDirectory)
|
|
||||||
condition: false # Must be manually enabled, since it causes a 5x perf reduction that causes test instability
|
|
||||||
|
|
||||||
- template: ../templates/set-experimental-feature.yml
|
- template: ../templates/set-experimental-feature.yml
|
||||||
parameters:
|
parameters:
|
||||||
package: packages/e2e-test-app
|
package: packages/e2e-test-app
|
||||||
|
@ -84,7 +77,7 @@ jobs:
|
||||||
- template: ../templates/run-windows-with-certificates.yml
|
- template: ../templates/run-windows-with-certificates.yml
|
||||||
parameters:
|
parameters:
|
||||||
buildEnvironment: ${{ parameters.BuildEnvironment }}
|
buildEnvironment: ${{ parameters.BuildEnvironment }}
|
||||||
encodedKey: reactUWPTestAppEncodedKey
|
encodedKey: RNTesterAppEncodedKey
|
||||||
buildConfiguration: Release
|
buildConfiguration: Release
|
||||||
buildPlatform: ${{ matrix.BuildPlatform }}
|
buildPlatform: ${{ matrix.BuildPlatform }}
|
||||||
deployOption: ${{ matrix.DeployOption }}
|
deployOption: ${{ matrix.DeployOption }}
|
||||||
|
@ -113,18 +106,18 @@ jobs:
|
||||||
condition: failed()
|
condition: failed()
|
||||||
|
|
||||||
- task: CopyFiles@2
|
- task: CopyFiles@2
|
||||||
displayName: Copy ReactUWPTestApp artifacts
|
displayName: Copy RNTesterApp artifacts
|
||||||
inputs:
|
inputs:
|
||||||
sourceFolder: $(Build.SourcesDirectory)/packages/e2e-test-app/windows/ReactUWPTestApp
|
sourceFolder: $(Build.SourcesDirectory)/packages/e2e-test-app/windows/RNTesterApp
|
||||||
targetFolder: $(Build.StagingDirectory)/ReactUWPTestApp
|
targetFolder: $(Build.StagingDirectory)/RNTesterApp
|
||||||
contents: AppPackages\**
|
contents: AppPackages\**
|
||||||
condition: failed()
|
condition: failed()
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: "Publish Artifact:ReactUWPTestApp"
|
displayName: "Publish Artifact:RNTesterApp"
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: ReactUWPTestApp-${{ matrix.BuildPlatform }}-$(System.JobAttempt)
|
artifactName: RNTesterApp-${{ matrix.BuildPlatform }}-$(System.JobAttempt)
|
||||||
targetPath: $(Build.StagingDirectory)/ReactUWPTestApp
|
targetPath: $(Build.StagingDirectory)/RNTesterApp
|
||||||
condition: failed()
|
condition: failed()
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
|
|
Двоичные данные
.ado/scripts/ReactUWPTestApp.reg
|
@ -13,9 +13,9 @@ steps:
|
||||||
displayName: Specify Certificate
|
displayName: Specify Certificate
|
||||||
condition: and(eq('${{ parameters.buildEnvironment }}', 'Continuous'), eq('${{ parameters.encodedKey}}' , 'sampleAppCPPEncodedKey'))
|
condition: and(eq('${{ parameters.buildEnvironment }}', 'Continuous'), eq('${{ parameters.encodedKey}}' , 'sampleAppCPPEncodedKey'))
|
||||||
|
|
||||||
- powershell: Write-Host "##vso[task.setvariable variable=EncodedKey]$(reactUWPTestAppEncodedKey)"
|
- powershell: Write-Host "##vso[task.setvariable variable=EncodedKey]$(RNTesterAppEncodedKey)"
|
||||||
displayName: Specify Certificate
|
displayName: Specify Certificate
|
||||||
condition: and(eq('${{ parameters.buildEnvironment }}', 'Continuous'), eq('${{ parameters.encodedKey}}' , 'reactUWPTestAppEncodedKey'))
|
condition: and(eq('${{ parameters.buildEnvironment }}', 'Continuous'), eq('${{ parameters.encodedKey}}' , 'RNTesterAppEncodedKey'))
|
||||||
|
|
||||||
- powershell: Write-Host "##vso[task.setvariable variable=EncodedKey]$(playgroundEncodedKey)"
|
- powershell: Write-Host "##vso[task.setvariable variable=EncodedKey]$(playgroundEncodedKey)"
|
||||||
displayName: Specify Certificate
|
displayName: Specify Certificate
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"type": "none",
|
||||||
|
"comment": "ReactUwpTestApp -> RNTesterApp",
|
||||||
|
"packageName": "jest-environment-winappdriver",
|
||||||
|
"email": "ngerlem@microsoft.com",
|
||||||
|
"dependentChangeType": "none"
|
||||||
|
}
|
|
@ -66,20 +66,12 @@ Here are the artifacts that are produced during the build:
|
||||||
- error screenshots of the app when a test failed
|
- error screenshots of the app when a test failed
|
||||||
- test run XML - this contains some information like the name of the wdio test that failed and the JS stack
|
- test run XML - this contains some information like the name of the wdio test that failed and the JS stack
|
||||||
- tree dump outputs - you can compare these to the output of the main branch to see if there is a the difference responsible for the test failing.
|
- tree dump outputs - you can compare these to the output of the main branch to see if there is a the difference responsible for the test failing.
|
||||||
- crash dumps of the e2e test app (ReactUWPTestApp)
|
- crash dumps of the e2e test app (RNTesterApp)
|
||||||
|
|
||||||
You can access these by going to the AzureDevOps run for your PR and clicking on the artifacts link:
|
You can access these by going to the AzureDevOps run for your PR and clicking on the artifacts link:
|
||||||
|
|
||||||
![Artifacts](img/e2e-artifacts.png)
|
![Artifacts](img/e2e-artifacts.png)
|
||||||
|
|
||||||
Then you can access crash dumps under the `ReactUWPTestAppTreeDump\CrashDumps` folder.
|
|
||||||
![CrashDumps](img/e2e-crashdumps.png)
|
|
||||||
|
|
||||||
You can get the symbols from the `appxsym` (just download it and rename it to `.zip`):
|
|
||||||
![SymbolsPackage](img/e2e-syms.png)
|
|
||||||
|
|
||||||
The `ReactUWPTestAppTreeDump` folder will also contain any tree dump outputs that were produced that did not match the main branch.
|
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
### WinAppDriver
|
### WinAppDriver
|
||||||
|
|
Двоичные данные
docs/img/e2e-crashdumps.png
До Ширина: | Высота: | Размер: 107 KiB |
Двоичные данные
docs/img/e2e-syms.png
До Ширина: | Высота: | Размер: 93 KiB |
|
@ -1,8 +1,8 @@
|
||||||
/node_modules
|
/node_modules
|
||||||
/windows/ReactUWPTestApp/Generated Files/
|
/windows/RNTesterApp/Generated Files/
|
||||||
/build
|
/build
|
||||||
/errorShots
|
/errorShots
|
||||||
/reports
|
/reports
|
||||||
/dist
|
/dist
|
||||||
/windows/ReactUWPTestApp/Bundle/
|
/windows/RNTesterApp/Bundle/
|
||||||
msbuild.binlog
|
msbuild.binlog
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"name": "ReactUWPTestApp",
|
"name": "RNTesterApp",
|
||||||
"displayName": "ReactUWPTestApp"
|
"displayName": "RNTesterApp"
|
||||||
}
|
}
|
|
@ -55,7 +55,7 @@ module.exports = {
|
||||||
setupFilesAfterEnv: ['react-native-windows/jest/setup', './jest.setup.js'],
|
setupFilesAfterEnv: ['react-native-windows/jest/setup', './jest.setup.js'],
|
||||||
|
|
||||||
testEnvironmentOptions: {
|
testEnvironmentOptions: {
|
||||||
app: 'ReactUWPTestApp',
|
app: 'RNTesterApp',
|
||||||
enableAutomationChannel: true,
|
enableAutomationChannel: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<react:ReactApplication
|
<react:ReactApplication
|
||||||
xmlns:react="using:Microsoft.ReactNative"
|
xmlns:react="using:Microsoft.ReactNative"
|
||||||
x:Class="ReactUWPTestApp.App"
|
x:Class="RNTesterApp.App"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:local="using:ReactUWPTestApp"
|
xmlns:local="using:RNTesterApp"
|
||||||
RequestedTheme="Light">
|
RequestedTheme="Light">
|
||||||
<Application.Resources>
|
<Application.Resources>
|
||||||
<ResourceDictionary>
|
<ResourceDictionary>
|
|
@ -13,7 +13,7 @@ using Microsoft.ReactNative.Managed;
|
||||||
using Windows.UI.Xaml;
|
using Windows.UI.Xaml;
|
||||||
using Windows.UI.Xaml.Controls;
|
using Windows.UI.Xaml.Controls;
|
||||||
|
|
||||||
namespace ReactUWPTestApp
|
namespace RNTesterApp
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provides application-specific behavior to supplement the default Application class.
|
/// Provides application-specific behavior to supplement the default Application class.
|
||||||
|
@ -45,7 +45,7 @@ namespace ReactUWPTestApp
|
||||||
Microsoft.ReactNative.Managed.AutolinkedNativeModules.RegisterAutolinkedNativeModulePackages(PackageProviders); // Includes any autolinked modules
|
Microsoft.ReactNative.Managed.AutolinkedNativeModules.RegisterAutolinkedNativeModulePackages(PackageProviders); // Includes any autolinked modules
|
||||||
|
|
||||||
PackageProviders.Add(new Microsoft.ReactNative.Managed.ReactPackageProvider());
|
PackageProviders.Add(new Microsoft.ReactNative.Managed.ReactPackageProvider());
|
||||||
PackageProviders.Add(new ReactUWPTestApp.ReactPackageProvider());
|
PackageProviders.Add(new RNTesterApp.ReactPackageProvider());
|
||||||
|
|
||||||
this.InitializeComponent();
|
this.InitializeComponent();
|
||||||
}
|
}
|
До Ширина: | Высота: | Размер: 1.4 KiB После Ширина: | Высота: | Размер: 1.4 KiB |
До Ширина: | Высота: | Размер: 7.5 KiB После Ширина: | Высота: | Размер: 7.5 KiB |
До Ширина: | Высота: | Размер: 2.9 KiB После Ширина: | Высота: | Размер: 2.9 KiB |
До Ширина: | Высота: | Размер: 1.6 KiB После Ширина: | Высота: | Размер: 1.6 KiB |
До Ширина: | Высота: | Размер: 1.2 KiB После Ширина: | Высота: | Размер: 1.2 KiB |
До Ширина: | Высота: | Размер: 1.4 KiB После Ширина: | Высота: | Размер: 1.4 KiB |
До Ширина: | Высота: | Размер: 3.1 KiB После Ширина: | Высота: | Размер: 3.1 KiB |
|
@ -1,8 +1,8 @@
|
||||||
<Page
|
<Page
|
||||||
x:Class="ReactUWPTestApp.MainPage"
|
x:Class="RNTesterApp.MainPage"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:local="using:ReactUWPTestApp"
|
xmlns:local="using:RNTesterApp"
|
||||||
xmlns:react="using:Microsoft.ReactNative"
|
xmlns:react="using:Microsoft.ReactNative"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||||
<react:ReactRootView
|
<react:ReactRootView
|
||||||
x:Name="myRootView"
|
x:Name="myRootView"
|
||||||
ComponentName="ReactUWPTestApp"
|
ComponentName="RNTesterApp"
|
||||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
||||||
Width="800"
|
Width="800"
|
||||||
Height="600" />
|
Height="600" />
|
|
@ -10,7 +10,7 @@ using Windows.UI.Xaml.Controls;
|
||||||
|
|
||||||
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
|
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
|
||||||
|
|
||||||
namespace ReactUWPTestApp
|
namespace RNTesterApp
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// An empty page that can be used on its own or navigated to within a Frame.
|
/// An empty page that can be used on its own or navigated to within a Frame.
|
|
@ -7,14 +7,14 @@
|
||||||
IgnorableNamespaces="uap mp">
|
IgnorableNamespaces="uap mp">
|
||||||
|
|
||||||
<Identity
|
<Identity
|
||||||
Name="ReactUWPTestApp"
|
Name="RNTesterApp"
|
||||||
Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
|
Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
|
||||||
Version="1.0.0.0" />
|
Version="1.0.0.0" />
|
||||||
|
|
||||||
<mp:PhoneIdentity PhoneProductId="87fc81ab-83a8-412b-bec2-37f8f47d4b06" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
<mp:PhoneIdentity PhoneProductId="87fc81ab-83a8-412b-bec2-37f8f47d4b06" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||||
|
|
||||||
<Properties>
|
<Properties>
|
||||||
<DisplayName>ReactUWPTestApp</DisplayName>
|
<DisplayName>RNTesterApp</DisplayName>
|
||||||
<PublisherDisplayName>react-native-windows-testing</PublisherDisplayName>
|
<PublisherDisplayName>react-native-windows-testing</PublisherDisplayName>
|
||||||
<Logo>Assets\StoreLogo.png</Logo>
|
<Logo>Assets\StoreLogo.png</Logo>
|
||||||
</Properties>
|
</Properties>
|
||||||
|
@ -30,12 +30,12 @@
|
||||||
<Applications>
|
<Applications>
|
||||||
<Application Id="App"
|
<Application Id="App"
|
||||||
Executable="$targetnametoken$.exe"
|
Executable="$targetnametoken$.exe"
|
||||||
EntryPoint="ReactUWPTestApp.App">
|
EntryPoint="RNTesterApp.App">
|
||||||
<uap:VisualElements
|
<uap:VisualElements
|
||||||
DisplayName="ReactUWPTestApp"
|
DisplayName="RNTesterApp"
|
||||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||||
Square44x44Logo="Assets\Square44x44Logo.png"
|
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||||
Description="ReactUWPTestApp"
|
Description="RNTesterApp"
|
||||||
BackgroundColor="transparent">
|
BackgroundColor="transparent">
|
||||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
|
@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
// set of attributes. Change these attribute values to modify the information
|
// set of attributes. Change these attribute values to modify the information
|
||||||
// associated with an assembly.
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("ReactUWPTestApp")]
|
[assembly: AssemblyTitle("RNTesterApp")]
|
||||||
[assembly: AssemblyDescription("")]
|
[assembly: AssemblyDescription("")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("ReactUWPTestApp")]
|
[assembly: AssemblyProduct("RNTesterApp")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
|
@ -10,8 +10,8 @@
|
||||||
<ProjectGuid>{ABBB0407-0E82-486F-94CE-710900FCAADC}</ProjectGuid>
|
<ProjectGuid>{ABBB0407-0E82-486F-94CE-710900FCAADC}</ProjectGuid>
|
||||||
<OutputType>AppContainerExe</OutputType>
|
<OutputType>AppContainerExe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>ReactUWPTestApp</RootNamespace>
|
<RootNamespace>RNTesterApp</RootNamespace>
|
||||||
<AssemblyName>ReactUWPTestApp</AssemblyName>
|
<AssemblyName>RNTesterApp</AssemblyName>
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||||
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
|
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
using Microsoft.ReactNative;
|
using Microsoft.ReactNative;
|
||||||
|
|
||||||
namespace ReactUWPTestApp
|
namespace RNTesterApp
|
||||||
{
|
{
|
||||||
public partial class ReactPackageProvider : IReactPackageProvider
|
public partial class ReactPackageProvider : IReactPackageProvider
|
||||||
{
|
{
|
|
@ -24,7 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PropertySheets", "PropertyS
|
||||||
PropertySheets\x86.props = PropertySheets\x86.props
|
PropertySheets\x86.props = PropertySheets\x86.props
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactUWPTestApp", "ReactUWPTestApp\ReactUWPTestApp.csproj", "{ABBB0407-0E82-486F-94CE-710900FCAADC}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RNTesterApp", "RNTesterApp\RNTesterApp.csproj", "{ABBB0407-0E82-486F-94CE-710900FCAADC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "..\..\..\vnext\Common\Common.vcxproj", "{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "..\..\..\vnext\Common\Common.vcxproj", "{FCA38F3C-7C73-4C47-BE4E-32F77FA8538D}"
|
||||||
EndProject
|
EndProject
|
||||||
|
|