# The .NET Bio testing framework.

.NET Bio uses [NUnit 3.0](http://www.nunit.org/), patches should come with tests and all tests should pass before a commit or branch is merged.


### Quick start Windows command line

 - Download the [NUnit binaries](http://github.com/nunit/nunitv2/releases/download/2.6.4/NUnit-2.6.4.zip), unzip and add to your path
 - Build Bio.Tests.Core project (usually in Visual Studio)
 - `nunit-console Source\Tests\Bio.Tests\bin\Release\Bio.Tests.dll`
 
 
### Quick start Mono command line

 - Download the [NUnit binaries](http://github.com/nunit/nunitv2/releases/download/2.6.4/NUnit-2.6.4.zip), unzip and place somewhere accessible
 - Build Bio.Tests.Core project (usually in Xamarin Studio)
 - `export MONO_IOMAP=all`
 - `mono somewhere/nunit-console.exe Source/Tests/Bio.Tests/bin/Release/Bio.Tests.dll`
 
### Running Unit Tests in the IDE

NUnit 3.0 is not incredibly robust in the IDEs at present, so results are mixed but here are some suggestions.  

In **Visual Studio**, NUnit has an integrated Visual Studio add-in which can be downloaded from their website and used to run tests in the Test Explorer pane.

In **Xamarin Studio**, the main problem is that the environmental variable MONO_IOMAP must be set to "all" in order to handle some historical path naming conventions to subdirectories (e.g. TestUtils\Bed\Data.txt) when .NET Bio was not fully cross-platform. In the Xamarin test window, you can right click on any test, then Run Test With -> Edit Custom Modes to create a mode with this variable set.  You can then right click and select the tests to run with this mode, which will allow everything to work.

## Test Data

All of the projects testing data is in a shared project located at  `/bio/Source/Tests/TestData/TestUtils`.  New data files used in testing should be placed here.  On Windows, all of this data will be automatically copied by the build process into the output directory of `Bio.Tests.dll`.  In Mono, these files do not appear to be copied properly so we invoke a "cp" command as part of the build. 
Add README file to explain testing
Add README file to explain testing
