White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is .NET based and does not require the use of any proprietary scripting languages. Tests/automation programs using White can be written with whatever .NET language, IDE and tools you are already using. White provides a consistent object-oriented API, hiding the complexity of Microsoft's UIAutomation library (on which White is based) and windows messages.
Project white has been inactive for some time, but still has many users and is a great UI automation framework.
TestStack has brought this project into it's offering to try and breathe some life into Project White.
White needs contributors to keep improving. There is plenty to do:
- Write documentation. Currently on docs.teststack.net but will likley be migrated to the GitHub wiki, the wiki is publically editable so jump in, migrate a page or improve an existing one.
- Look into any of the open issues, submit a pull request or suggest a fix which could help the issue be closed
- Pick up a failing test on the https://github.com/TestStack/White/tree/UIAComWrapper branch.
- Add a new test
Install TestStack.White from NuGet
PM> Install-Package TestStack.White
Now download one or more of these tools. Each of these has their own strengths and weaknesses and generally using more than one to view the automation properties will be required.
- Inspect - This is part of the Windows SDK and is a good tool in general for looking at automation properties.
- UI Automation Verify - Also part of the Windows SDK another good general tool for looking at automation properties. There's a fork of original UIAVerify that allows usage of custom patterns and custom properties. For an example how to add your own custom pattern or property to your application, look at this project.
- Snoop - Only works with WPF applications and is really good at it. Offers much more functionality than just viewing the automation properties.
- Spy++ - This is included in visual studio under the tools menu option. This is good for working with Winforms, Win32 and VB6 applications because it allows you to view the applications window messages and automation properties.
See the sample apps here for examples of using White in both WinForms and WPF.
Whites UI Tests
Contributions to White's documentation is welcome
Contributing to White
Pull Requests for White are welcome, please include either Unit or UI Tests covering your changes if possible.
Setting up Git
Contributing to a TestStack Project
If possible, please add a failing test to TestStack.White.UITests when you report an issue, this will allow me to fix it, and ensure there is no regression later.
Also include the following information:
- Operating System
- Target Framework (WPF, Winforms etc)
- Optionally but preferred, a failing test or a repro solution.
Thanks to Thoughtworks and specifically Vivek Singh for starting this project. We have got permission from Vivek to continue this project.