Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Automation Testing – Getting Started

The DotNetNuke Automation Testing project is available on CodePlex at and is welcoming testers and developers and anyone else who would like to contribute to try it out and write your won tests based on the style we have set up.  To get started you will need to set a few variables and create some folders.  Stefan did a nice post on it a few weeks back so this post is to add to that and explain a few differences.  In this example the tests will run the installation for DNN 5.2.3, the upgrade from DNN 4.9.3 to DNN 5.2.3 and a series of tests on those installations.

The project is on CodePlex so you can use SVN or the TFS client to download the source or you can download the zip file if you like.  Once you have that local open the solution and follow these steps:

Setup folders and package files.

The idea behind the following folder structure is that all of the websites that get built as part of the installation tests get loaded into the Websites folder, and databases that are created and reused are held in the Databases folder and any packages you wish to test such as upgrades, module installations, languages and skins are stored in the Packages folder. 

  1. Choose a location on your hard drive where you will keep all the files associated with the tests.
    I use D:\Tests
  2. Inside that folder add a folder called Websites
  3. Add another folder inside the testing folder called Packages and another called Databases.
  4. Inside the packages folder add any package files that you will need for testing. 
    1. For this example you will need, and a zip file of an existing DNN 4.9.3 site.  The upgrade site must have the .mdf file for it in the App_Data folder.

Updating the project for your environment

  1. Expand the DotNetNuke.Tests.UI.WatiN.BuildVerification project.
  2. Open the app.config file
  3. In the TestVersion setting set the version you wish to test, use 05.02.03 for DNN 05.02.03
  4. In the DatabaseName section enter the name you want the database to be called for any newly created databases created by the tests.
  5. In DatabaseServer enter the name of the server you have access to, use (local) if its on your dev machine.
  6. At the bottom of the file update the values for the Test File Locations section to the values that correspond to your environment.

That’s all you need to do, the tests have been written with Setup and Teardown methods that will automatically create and destroy any IIS sites or databases that need to be created for the tests.  Each test gets its own database so you know you are starting from a known testable position each test.

To run the tests simply build the solution and use your chosen test runner.  See my earlier post on test runners to see which suits you best. Automation Testing of the Core – Frameworks

As the tests run you will see progress shown below in the ReSharper test runner.  You will also notice that the order of the tests is handled by an attribute in MBunit that allows you to specify that one test is dependant on another having run successfully.  This is done so that we can use a new ly installed site from teh Installation tests in further tests for Adding pages etc.


As each test progresses you will see a new instance of IE popup and the various fields getting filled in as the test runs.  The yellow field is what is being edited by the test.


Please download the tests and get started on learning how it all works so we can all pull together and build a thorough suite of tests for DNN.


Comment Form

Only registered users may post comments.


2sic Daniel Mettler (125)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (22)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (270)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?