[Monodevelop-devel] Abstracting away NUnit dependencies

Sergey Khabibullin x2bool at gmail.com
Tue Apr 29 11:53:54 UTC 2014

Hello! At this Summer I will be working on a GSoC project (XUnit support
for MonoDevelop). Now I am planning my work, and I thought I could share my
ideas to get your opinions before go any further. I would appreciate your

The first task, probably, is to abstract existing code from NUnit
dependencies. Bellow are my intentions, how I imaging the start of this


Delegate actual test discovery/creation to the new interface called
ITestDiscoverer. Make ITestProvider (or maybe an implementing class) the
point where an addin can register its ITestDiscoverer implementation.

This gives us a way to have multiple test discoverers for a single test
provider. For example, XUnitTestDiscoverer and NUnitTestDiscoverer might
register themselves to the DotNetTestProvider, and when the test creation
process happens the provider uses both discoverers to create tests, then
merges the tests into a single tree. At the same time another test provider
builds its own tree which is not supposed to be merged with the first (but
both trees will have the same parent node since they are built from the
same IWorkspaceObject). Simply, it's just a way to have several "domains"
(e.g. DotNetTestProvider, JsTestProvider, MyTestProvider) which can be
introduced and extended by plugins.

The changes will force NUnitService to change its return type from UnitTest
to List<UnitTest>. However, it's not a big issue and can be fixed without
breaking a lot of things.

Link - https://github.com/x2bool/monodevelop/tree/soc/main/src/addins/NUnit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/monodevelop-devel-list/attachments/20140429/f2da5b8a/attachment.html>

More information about the Monodevelop-devel-list mailing list