What I want is to run my WPF automation tests (integration tests) in the continuous integration process when possible. It means, everytime something is pushed to the source control I want to trigger an event that starts the WPF automation tests. However integration tests are slower than unit tests that is why I would like to execute them in Parallel, in several Virtual Machines. Is there any framework or tools that allows me to run my WPF automation tests in parallel?

- 16,415
- 6
- 64
- 87

- 327
- 1
- 5
- 13
-
Which test framework are you using? – sll Feb 23 '12 at 20:01
-
It is still open. Maybe I will use White or the free testing framework from telerik. – Diego Feb 23 '12 at 20:03
-
See some recommendations regarding running White tests [here](http://white.codeplex.com/wikipage?title=Using%20with%20Continuous%20Integration&referringTitle=Home) – sll Feb 23 '12 at 20:08
-
Hi sll, in the link are the recommendation about running White in a CI environment, like do not lock the computer when tests are running, but it does not mention how to run tests written in White in several computers, somthing distributed. – Diego Feb 24 '12 at 06:14
1 Answers
We use Jenkins. Our system tests are built on top of a proprietary framework written in C#.
Jenkins allows jobs to be triggered by SCM changes (SVN, Git, and Mercurial are all supported via plugins). It also allows jobs to be run on remote slaves (in parallel, if needed). You do need to configure your jobs and slaves by hand. Configuring jobs can be done with build parameters: say, you have only one job that accepts test id's as parameters, but it can run on several slaves; you can configure one trigger job that will start several test jobs on different slaves passing to them test id's as parameters.
Configuring slaves is made much easier when your slaves are virtual machines. You configure one VM and then copy it (make sure that node-specific information, such as Node Name is not hard-coded and is easily configurable).
The main advantages of Jenkins:
- It's free
- It has an extendable architecture allowing people to extend it via plugins. As a matter of fact, at this stage (unlike, say, a year and a half ago) everything I need to do can be done either via plugins or Jenkins HTTP API.
- It's can be rapidly deployed. Jenkins runs in its own servlet container. You can deploy and start playing with it in less than an hour.
- Active community. Check, for example, [jenkins], [hudson], and [jenkins-plugins] tags on SO.
I propose that you give it a try: play with it for a couple of days, chance are you'll like it.
Update: Here's an old answer I've liked recommending Jenkins.

- 1
- 1

- 16,415
- 6
- 64
- 87