Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
Перейти к файлу
Keith Mahoney 4616a30b74
Enable WinUI tests in Helix (#83)
This is the initial check-in of work that enables running WinUI tests in Helix.

There are some things that are missing that will come in a later PR. I wanted to get this work merged to master sooner so that we can start getting things up and running.

Not in this PR:
* Scheduling tests on RS1 - RS5 machines is not yet enabled. Currently all tests are running on the Windows.10.Amd64.Open Helix queue which is a Windows Server 2016 RS1 queue.
* Release configuration and/or x64 target platform. Currently only x86/debug is enabled.
* Not all tests are enabled yet such as IXMP tests, WPF hosting tests, NuGet package tests, Framework Package tests.

All of the above will come soon after this PR is completed.

**Details:**

Helix is a cloud hosted test execution environment which is accessed via the Arcade SDK.
More details:
* [Arcade](https://github.com/dotnet/arcade)
* [Helix](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.Helix/Sdk)

WinUI tests are scheduled in Helix by the Azure DevOps Pipeline: RunHelixTests.yml.

The workflow is as follows:
1. NuGet Restore is called on the packages.config in this directory. This downloads any runtime dependencies that are needed to run tests.
2. PrepareHelixPayload.ps1 is called. This copies the necessary files from various locations into a Helix payload directory. This directory is what will get sent to the Helix machines.
3. RunTestsInHelix.proj is executed. This proj has a dependency on [Microsoft.DotNet.Helix.Sdk](https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.Helix/Sdk) 
which it uses to publish the Helix payload directory and to schedule the Helix Work Items. The WinUI tests are parallelized into multiple Helix Work Items.
4. Each Helix Work Item calls runtests.cmd with a specific query to pass to [TAEF](https://docs.microsoft.com/en-us/windows-hardware/drivers/taef/) which runs the tests.
5. TAEF produces logs in WTT format. Helix is able to process logs in XUnit format. We run ConvertWttLogToXUnit.ps1 to convert the logs into the necessary format.
6. RunTestsInHelix.proj has EnableAzurePipelinesReporter set to true. This allows the XUnit formatted test results to be reported back to the Azure DevOps Pipeline.

Example run: https://dev.azure.com/ms/microsoft-ui-xaml/_build/results?buildId=730

Full Atlas test pass: https://microsoft.visualstudio.com/WinUI/_build/results?buildId=13389551&view=ms.vss-test-web.test-result-details
2018-12-14 17:14:48 -08:00
.github/ISSUE_TEMPLATE Initial commit 2018-12-03 17:20:35 -08:00
build Enable WinUI tests in Helix (#83) 2018-12-14 17:14:48 -08:00
dev Enable WinUI tests in Helix (#83) 2018-12-14 17:14:48 -08:00
docs Docs updates (#73) 2018-12-14 08:24:18 -08:00
idl Initial commit 2018-12-03 17:20:35 -08:00
manifest Initial commit 2018-12-03 17:20:35 -08:00
test Enable WinUI tests in Helix (#83) 2018-12-14 17:14:48 -08:00
tools Enable WinUI tests in Helix (#83) 2018-12-14 17:14:48 -08:00
winrt Initial commit 2018-12-03 17:20:35 -08:00
.editorconfig Initial commit 2018-12-03 17:20:35 -08:00
.gitattributes Initial commit 2018-12-03 17:20:35 -08:00
.gitignore Enable WinUI tests in Helix (#83) 2018-12-14 17:14:48 -08:00
Build.cmd Dummy commit to test CI (#38) 2018-12-05 15:42:07 -08:00
CODE_OF_CONDUCT.md Initial commit 2018-12-03 17:20:35 -08:00
CONTRIBUTING.md Initial commit 2018-12-03 17:20:35 -08:00
CustomInlineTasks.targets Initial commit 2018-12-03 17:20:35 -08:00
CustomTasks.sln Initial commit 2018-12-03 17:20:35 -08:00
DevCmd.cmd Initial commit 2018-12-03 17:20:35 -08:00
Directory.Build.props Initial commit 2018-12-03 17:20:35 -08:00
LICENSE Initial commit 2018-07-26 11:45:33 -07:00
MUXControls.sln Initial commit 2018-12-03 17:20:35 -08:00
ProjectConfigurations.props Initial commit 2018-12-03 17:20:35 -08:00
README.md Docs updates (#73) 2018-12-14 08:24:18 -08:00
RunTests.ps1 Update to the officially released version of Microsoft.Windows.Apps.Test. 2018-12-04 09:54:40 -08:00
SdkVersion.props Initial commit 2018-12-03 17:20:35 -08:00
custom.props Update version to 2.1 (#75) 2018-12-13 15:09:26 -08:00
dirs Initial commit 2018-12-03 17:20:35 -08:00
environment.props Initial commit 2018-12-03 17:20:35 -08:00
mux.controls.props Fix TreeView content mode (#43) 2018-12-07 13:05:53 -08:00
nuget.config Initial commit 2018-12-03 17:20:35 -08:00

README.md

Windows UI Library

The Windows UI Library (WinUI) provides official native Microsoft UI controls and features for Windows UWP apps.

WinUI is the easiest way to build great Fluent Design experiences for Windows.

WinUI can be used in any Windows 10 UWP XAML app, or in a Xamarin.Forms app running on Windows 10 using native view embedding.

Using WinUI

You can download and use WinUI packages in your app using the NuGet package manager: see the Getting Started with the Windows UI Library page for more information.

Packages

NuGet Package Build Status Latest Versions
Microsoft.UI.Xaml
Controls and Fluent Design for UWP apps
Build Status latest stable version
latest prerelease version
Microsoft.UI.Xaml.Core.Direct
Low-level APIs for middleware components
latest prerelease version

You can also build a WinUI package yourself from source. See Contributing to the Windows UI Library for more information on building and contributing to WinUI.

Documentation

WinUI usage documentation can be found here:

https://docs.microsoft.com/uwp/toolkits/winui

Contributing to WinUI

The WinUI team welcomes feedback and contributions!

For information on how to contribute please see Contributing to the Windows UI Library.

WinUI features

Benefits

The WinUI Library provides some useful benefits when building apps for Windows 10:

  1. Helps you stay up to date
    WinUI helps keep your app up to date with the latest versions of key controls and features of UWP XAML and the Fluent Design System

  2. Provides backward compatibility
    WinUI is backward-compatible with a wide range of Windows 10 versions: you can start building and shipping apps with new XAML features immediately as soon as they're released, even if your users aren't on the latest version of Windows 10

  3. Makes it simpler to build version adaptive apps
    You don't need version checks or conditional XAML markup to use WinUI controls or features: WinUI automatically adapts to the user's OS version

Version support

The Microsoft.UI.Xaml NuGet package requires your project to have TargetPlatformVersion >= 10.0.17134.0 and TargetPlatformMinVersion >= 10.0.14393.0 when building.

Your app's users can be on any of the following supported Windows versions:

  • Windows Insider Previews
  • October 2018 Update (17763)
  • April 2018 Update (17134)
  • Fall Creators Update (16299)
  • Creators Update (15063)
  • Anniversary Update (14393)

Some features may have a reduced or slightly different user experience on older versions, particularly on builds before 15063. This should not impact overall usability.

Contents

The Microsoft.UI.Xaml 2.0 stable package includes:

Prerelease Microsoft.UI.Xaml packages also include previews of features and controls that we are still working on, like:

The Microsoft.UI.Xaml.Core.Direct package includes:

  • XamlDirect and related APIs to improve performance for middleware components

Roadmap

For info on the WinUI release schedule and high level plans please see the Windows UI Library Roadmap.

Data/Telemetry

This project collects usage data and sends it to Microsoft to help improve our products and services. Read Microsoft's privacy statement to learn more.

For more information on telemetry implementation see the developer guide.