×

Status message

This proposal has been approved and the Eclipse RedDeer project has been created.

Eclipse RedDeer

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 
Testing GUI such as SWT/Eclipse applications is not an easy task. The task is much harder if you wish to automate the testing scenarios. Challenges while automating test scenarios are complexity, stability and maintenance.
 
Eclipse RedDeer has been created as an alternative to SWTBot, offering stability and providing own features (support for Eclipse Wizards, Preferences, Test requirements, Wait conditions, UI tooling). RedDeer aims to help developers to write complex test scenarios that interact with application user interface quickly and effectively.
RedDeer is being developed since 2012.
Scope: 
Scope of Eclipse RedDeer is to provide:
  • Support for SWT applications and Eclipse IDE for Java EE Developers distribution
  • API based on PageObjects design pattern
  • Integration with JUnit - built on top of JUnit with customized test flow and test tracking
  • Wait conditions - wait for UI or Eclipse state
  • Test Requirements - annotation driven configuration to prepare required test environment
  • Graphical support (GEF/Graphiti)
  • Support for running tests in a Jenkins CI environment
  • Support for Windows, MacOSX, Linux
  • UI tooling facilitating test development
Description: 

The Eclipse RedDeer project is an extensible framework used for development of automated SWT/Eclipse tests which interacts with application’s user interface. RedDeer provides the PageObjects API for comfortable testing of standard SWT (Buttons, Trees..), JFace (UIForms), Workbench (Views, Editors, ..) and Eclipse (Wizards, Preferences,...) components and also allows creating and extending your own components. RedDeer also provides capabilities to work with graphical editors based on GEF or Graphiti.

Eclipse RedDeer is extensively tested on 3 major platforms - Windows, MacOSX and Linux to ensure that all nuances in the SWT implementations are handled correctly. Examination of test results in CI environment is easier thanks to capturing screenshots on test failures and collecting Eclipse Platform log.

Why Here?: 
Any project which uses SWT/Eclipse Platform would be able to easily utilize this testing framework.
 
The project could attract more contributors and users to improve stability and overall quality of RedDeer itself. This project will also benefit from the Eclipse Foundation's high standard of IP control and strong governance.
Project Scheduling: 
Q2 2017 - initial contribution and release of RedDeer 2.0
Future Work: 
  • Cover all wizards, preferences and views in Eclipse IDE for Java EE Developers
  • Selenium integration for testing internal Eclipse browser
  • Code generator
People
Project Leads: 
Committers: 
Marián Labuda
Lucia Jelinkova
Source Code
Initial Contribution: 
The initial contribution is donated by Red Hat. RedDeer is actively developed on its github repository.
 
RedDeer consists of several plugins which are built on top of each other. Plugins cover the following functionality:
  • Manipulation with SWT, JFace and UIForms components. All operations are thread-safe.
  • Work with Eclipse IDE related features such as projects, servers, views, preferences, dialogs and wizards.
  • Support GEF and Graphiti components.
  • Test Requirements used for configuring test environment such as JRE, Server, Cleaning Workspace etc
  • Extensions which could be executed before or after tests, such as closing shells, closing welcome screen, manipulating with preferences etc.
  • Tool to parse log file from filesystem based on defined parse rules and display result of parsing nicely formatted within Eclipse editor.
  • Spy Eclipse widgets and track currently mouse-hovered widget. Spy feature provides information about class, contained text, descendants, parents and siblings and possible RedDeer implementations.
  • Spy capabilities for GEF based widgets in Eclipse.
  • UI for RedDeer such as launch configurations, launchers, wizards.
Source Repository Type: