2013-10-12 13:06:05 -07:00
|
|
|
= The Quick Guide to OpenSim Unit Testing =
|
2014-02-03 22:32:40 -07:00
|
|
|
|
2008-09-08 14:22:40 -07:00
|
|
|
== Running Tests ==
|
|
|
|
|
2011-03-11 15:38:51 -07:00
|
|
|
On Linux you will need to have NUnit installed (http://www.nunit.org).
|
|
|
|
This is commonly available in distribution package repositories.
|
2009-02-19 21:55:09 -07:00
|
|
|
|
2011-03-11 15:38:51 -07:00
|
|
|
When this is installed, run the command
|
2008-09-08 14:22:40 -07:00
|
|
|
|
2011-03-11 15:38:51 -07:00
|
|
|
> nant test
|
2008-09-08 14:22:40 -07:00
|
|
|
|
2011-03-11 15:38:51 -07:00
|
|
|
Please see the TESTING ON WINDOWS section below for Windows instructions.
|
2008-09-08 14:22:40 -07:00
|
|
|
|
|
|
|
== Adding Tests ==
|
|
|
|
|
|
|
|
Tests should not be added to production assemblies. They should
|
|
|
|
instead be added to assemblies of the name
|
|
|
|
My.Production.Assembly.Tests.dll. This lets them easily be removed
|
|
|
|
from production environments that don't want the bloat.
|
|
|
|
|
|
|
|
Tests should be as close to the code as possible. It is recommended
|
|
|
|
that if you are writing tests they end up in a "Tests" sub-directory
|
|
|
|
of the directory where the code you are testing resides.
|
|
|
|
|
|
|
|
If you have added a new test assembly that hasn't existed before you
|
2011-03-11 15:38:51 -07:00
|
|
|
must list it in both ".nant/local.include"
|
2008-09-08 14:22:40 -07:00
|
|
|
for it to be accessible to Linux users and to the continuous
|
|
|
|
integration system.
|
|
|
|
|
2013-01-18 19:32:41 -07:00
|
|
|
== TESTING ON WINDOWS ==
|
2009-02-19 21:55:09 -07:00
|
|
|
|
2008-08-29 18:38:41 -07:00
|
|
|
To use nunit testing on opensim code, you have a variety of methods. The
|
|
|
|
easiast methods involve using IDE capabilities to test code. Using
|
2011-03-11 15:38:51 -07:00
|
|
|
VS2005/2008 I recommend using the testing capabilities of Resharper(commercial)
|
2008-08-29 18:38:41 -07:00
|
|
|
or TestDriven.Net(free). Both will recognize nunit tests within your
|
|
|
|
application and allow you to test them individually, or all at once, etc. You
|
|
|
|
will also be able to step into debug mode into a test through these add-ins
|
|
|
|
enabling a developer to jump right in and see how a specific
|
|
|
|
test-case/scenerio works.
|
2008-02-08 11:11:47 -07:00
|
|
|
|
2008-08-29 18:38:41 -07:00
|
|
|
Additionally, it is my understanding that sharpdevelop and monodevelop have
|
|
|
|
their own nunit testing plugins within their IDE. Though I am not certain of
|
|
|
|
their exact feature set or stability.
|
2008-02-08 11:11:47 -07:00
|
|
|
|
|
|
|
== Using NUnit Directly ==
|
2008-08-29 18:38:41 -07:00
|
|
|
The NUnit project is a very mature testing application. It can be obtained
|
|
|
|
from www.nunit.org are via various package distrobutions for Linux. Please be
|
|
|
|
sure to get a .Net 2.0 version of Nunit, as OpenSim makes use of .Net 2.0
|
|
|
|
functionality.
|
2008-02-08 11:11:47 -07:00
|
|
|
|
2008-08-29 18:38:41 -07:00
|
|
|
Nunit comes with 2 tools that will enable you to run tests from assembly
|
|
|
|
inputs. Nunit-gui and nunit-console. NUnit-gui is a console that will let
|
|
|
|
you view the execution of various tests within your assemblies and give visual
|
|
|
|
indication of teir success or failure. This is a useful tool for those who
|
|
|
|
lack IDE addins ( or lack IDEs at all ).
|
2008-02-08 11:11:47 -07:00
|
|
|
|
2008-08-29 18:38:41 -07:00
|
|
|
Nunit console allows you to execute the nunit tests of assemblies via console.
|
|
|
|
Its output will show test failures and successes and a summary of what
|
2009-02-19 21:55:09 -07:00
|
|
|
happened. This is very useful for a quick overview and/or automated testing.
|
2008-02-08 11:11:47 -07:00
|
|
|
|
2013-01-18 19:32:41 -07:00
|
|
|
=== Windows ===
|
2008-08-29 18:38:41 -07:00
|
|
|
Windows version of nunit-console is by default .Net 2.0 if you downloaded the
|
|
|
|
.Net 2.0 version of Nunit. Be sure to setup your PATH environment variable.
|
2008-02-08 11:11:47 -07:00
|
|
|
|
2013-01-18 19:32:41 -07:00
|
|
|
=== Linux & OSX ===
|
2008-02-08 11:11:47 -07:00
|
|
|
On these operating systems you will have to use the command "nunit-console2"
|
|
|
|
|
2013-01-18 19:32:41 -07:00
|
|
|
=== Example ===
|
2008-02-08 11:11:47 -07:00
|
|
|
|
|
|
|
nunit-console2 OpenSim.Framework.Tests.dll (on linux)
|
|
|
|
nunit-console OpenSim.Framework.Tests.dll (on windows)
|
2012-01-22 14:27:49 -07:00
|
|
|
|
|
|
|
See the file OpenSim/Data/Tests/Resources/TestDataConnections.ini
|
|
|
|
for information to setup testing for data
|