Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "SWTBot/UsersGuide"
m |
(updated userguide to the latest update.) |
||
Line 15: | Line 15: | ||
SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms. | SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms. | ||
==Quick Start== | ==Quick Start== | ||
+ | |||
+ | === Creating A Project === | ||
+ | |||
+ | Create a new project by clicking on '''File>New>Project'''. On the '''New Project Dialog''', search for "plug-in", select '''New Plug-in Project''' and click '''Next'''. Create a new plugin project named '''org.eclipsecon.swtbot.example'''. | ||
+ | |||
+ | [[Image:Swtbot-create-project.gif]] | ||
+ | |||
===Configuration=== | ===Configuration=== | ||
* Add the following to your classpath: | * Add the following to your classpath: | ||
+ | org.eclipse.swtbot.eclipse.finder | ||
org.eclipse.swtbot.finder | org.eclipse.swtbot.finder | ||
+ | org.eclipse.swtbot.junit4_x | ||
+ | org.hamcrest | ||
org.apache.commons.collections | org.apache.commons.collections | ||
+ | org.junit4 | ||
org.apache.log4j | org.apache.log4j | ||
− | + | ||
− | + | [[Image:Swtbot-setup-dependencies.gif]] | |
===Getting started with SWTBot=== | ===Getting started with SWTBot=== | ||
SWTBot requires that tests run on a non-UI thread. If you run tests on the UI thread, they will eventually block the UI at some point in time. More info on this behavior available in the [[SWTBot/FAQ|FAQ]]. | SWTBot requires that tests run on a non-UI thread. If you run tests on the UI thread, they will eventually block the UI at some point in time. More info on this behavior available in the [[SWTBot/FAQ|FAQ]]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Getting started with SWTBot for Eclipse Plugins=== | ===Getting started with SWTBot for Eclipse Plugins=== | ||
− | To use SWTBot along with your eclipse plugin application you have to add the below plugins to your dependencies. | + | To use SWTBot along with your eclipse plugin application you have to add the below plugins to your dependencies. You can download the example from the swtbot download site http://download.eclipse.org/technology/swtbot/docs/eclipsecon2009/examples.zip. |
− | |||
− | |||
− | |||
− | |||
Now you can start using SWTBot. Below you can find a sample SWTBot testcase: | Now you can start using SWTBot. Below you can find a sample SWTBot testcase: | ||
<source lang="java"> | <source lang="java"> | ||
− | + | package org.eclipsecon.swtbot.example; | |
import org.eclipse.swtbot.eclipse.finder.SWTEclipseBot; | import org.eclipse.swtbot.eclipse.finder.SWTEclipseBot; | ||
− | import org.eclipse.swtbot.swt.finder. | + | import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; |
− | import org.eclipse.swtbot.swt.finder.widgets. | + | import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; |
+ | import org.junit.AfterClass; | ||
+ | import org.junit.BeforeClass; | ||
+ | import org.junit.Test; | ||
+ | import org.junit.runner.RunWith; | ||
− | + | @RunWith(SWTBotJunit4ClassRunner.class) | |
− | + | public class MyFirstTest { | |
− | + | ||
− | + | ||
− | + | ||
− | public class | + | |
− | + | private static SWTEclipseBot bot; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | @BeforeClass | |
− | + | public static void beforeClass() throws Exception { | |
− | + | bot = new SWTEclipseBot(); | |
− | + | bot.view("Welcome").close(); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | @Test | |
− | + | public void canCreateANewJavaProject() throws Exception { | |
− | + | bot.menu("File").menu("New").menu("Project...").click(); | |
− | + | SWTBotShell shell = bot.shell("New Project"); | |
− | + | shell.activate(); | |
− | + | bot.tree().select("Java Project"); | |
− | + | bot.button("Next >").click(); | |
− | + | ||
− | + | ||
− | + | ||
− | + | bot.textWithLabel("Project name:").setText("MyFirstProject"); | |
+ | |||
+ | bot.button("Finish").click(); | ||
+ | // FIXME: assert that the project is actually created, for later | ||
+ | } | ||
+ | |||
+ | |||
+ | @AfterClass | ||
+ | public static void sleep() { | ||
+ | bot.sleep(2000); | ||
+ | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
Line 219: | Line 94: | ||
===Executing SWTBot Tests for Eclipse Plugins=== | ===Executing SWTBot Tests for Eclipse Plugins=== | ||
− | Now that you've written the great test that you'd always wanted to, lets now see it run. In order to run the test, right click on the test and select Run As > | + | Now that you've written the great test that you'd always wanted to, lets now see it run. In order to run the test, right click on the test and select '''Run As > SWTBot Test''' |
[[Image:run-as-option.jpg]] | [[Image:run-as-option.jpg]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Select the application that you want to test | Select the application that you want to test | ||
[[Image:run-as-config-options.jpg]] | [[Image:run-as-config-options.jpg]] |
Revision as of 04:04, 1 July 2009
SWTBot |
Website |
Update Sites |
Community |
Mailing List |
Forums/Newsgroups |
IRC |
Contribute |
Open Bugzilla tickets |
Open Gerrit reviews |
Browse Source |
Continuous Integration |
Contents
SWTBot Users Guide
Note that this page is for naive and first time users. Advanced Users click here.
Introduction
SWTBot is an open-source Java based functional testing tool for testing SWT and Eclipse based applications.
SWTBot provides APIs that are simple to read and write. The APIs also hide the complexities involved with SWT and Eclipse. This makes it suitable for functional testing by everyone. SWTBot also provides its own set of assertions that are useful for SWT. You can also use your own assertion framework with SWTBot.
SWTBot can record and playback tests and integrates with Eclipse, and also provides for ant tasks so that you can run your builds from within CruiseControl or any other CI tool that you use.
SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms.
Quick Start
Creating A Project
Create a new project by clicking on File>New>Project. On the New Project Dialog, search for "plug-in", select New Plug-in Project and click Next. Create a new plugin project named org.eclipsecon.swtbot.example.
Configuration
- Add the following to your classpath:
org.eclipse.swtbot.eclipse.finder org.eclipse.swtbot.finder org.eclipse.swtbot.junit4_x org.hamcrest org.apache.commons.collections org.junit4 org.apache.log4j
Getting started with SWTBot
SWTBot requires that tests run on a non-UI thread. If you run tests on the UI thread, they will eventually block the UI at some point in time. More info on this behavior available in the FAQ.
Getting started with SWTBot for Eclipse Plugins
To use SWTBot along with your eclipse plugin application you have to add the below plugins to your dependencies. You can download the example from the swtbot download site http://download.eclipse.org/technology/swtbot/docs/eclipsecon2009/examples.zip.
Now you can start using SWTBot. Below you can find a sample SWTBot testcase:
package org.eclipsecon.swtbot.example; import org.eclipse.swtbot.eclipse.finder.SWTEclipseBot; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(SWTBotJunit4ClassRunner.class) public class MyFirstTest { private static SWTEclipseBot bot; @BeforeClass public static void beforeClass() throws Exception { bot = new SWTEclipseBot(); bot.view("Welcome").close(); } @Test public void canCreateANewJavaProject() throws Exception { bot.menu("File").menu("New").menu("Project...").click(); SWTBotShell shell = bot.shell("New Project"); shell.activate(); bot.tree().select("Java Project"); bot.button("Next >").click(); bot.textWithLabel("Project name:").setText("MyFirstProject"); bot.button("Finish").click(); // FIXME: assert that the project is actually created, for later } @AfterClass public static void sleep() { bot.sleep(2000); } }
Executing SWTBot Tests for Eclipse Plugins
Now that you've written the great test that you'd always wanted to, lets now see it run. In order to run the test, right click on the test and select Run As > SWTBot Test
Select the application that you want to test