Skip to content

quetzalcoatl/xvsr10

Repository files navigation

xvsr10 is a codename for xUnit.net test runner package for VisualStudio 2010.

Prebuild package v2.1 is already in 'Downloads'. Fetch, unzip, install, play.


BACKGROUND
----------

It was originally created by EmperorXLII and published as a work item
under http://xunit.codeplex.com/workitem/5648, however the xUnit team
was not able to mantain nor support it, as they put their effort into
their own runner for VisualStudio 2011.

This repository hosts the original work of EmperorXLII, it's added as
the first revision. It was then upgraded to integrate more seamlessly
with the VS2010 environment.


NOTES for v2.1
--------------

All the fuss about .bat, .reg and similar files is now gone! Current
version comes with a semi-installer that will take care of most of the
things almost automatically.

If you have never installed it before, please read the instructions far
below, in the 'installation' section.

If you have installed any previous versions between v1.0-v2.0 inclusive,
and if you performed the manual steps like copying to PrivateAssemblies,
now is the time to UNDO. If you run .reg/.bat files - this applies too.
I'm terribly sorry, but they shouldn't be required in the first place,
and it took me a few weeks to tidy that. In general, there's little to
be purged manually and this should be sufficient:
- remove xunit.runner and xunit.utility assemblies from VisualStudio's
  Common7/IDE/PrivateAssemblies
- uninstall the runner via Extension Manager, then restart VisualStudio
- view the .reg file and check if the entries mentioned there were really
  removed; if not - remove them


NOTES from v2.0
---------------

New features:
- now supports RunFromContext and similar VS commands,
- supports jumping back and forth between code and tests,
- provides data for many more columns in the standard test views.

Most notes of the original author are still apply:

1)
> To be clear, this is BETA QUALITY at best. It is able to run all
> xUnit Fact and Theory tests, display results just like MSUnit
> data-driven tests, and is compatible with VS's Code Coverage feature
> (and likely others).

2)
> There are some caveats (below). If these are acceptable, feel free
> to use the extension or code as you see fit.

3) [v2.1 has obsoleted this note]

4)
> Known issues:
> - Methods in a class must have a unique name (i.e. you cannot have
> multiple Theory methods with the same name but different arguments).


INSTALLATION
------------

If you have installed a 1.0 or 1.2 versions that EmperorXLII have
originally posted at xUnit's issue board, please uninstall them.
The GUIDs identifying the original version were mostly taken from
SDK sample projects, and in the current code they have been changed.
I don't really know what would happen, but I sense that having two
versions installed the same time is not a good idea.

Just download the package and install by double-clicking the VSIX file.
On the first run, the runner will probably show a message asking you to
complete the installation. Confirm it, accept the UAC propmpt if any,
and install the correct patches using the utility that will show up.
It should be as easy as clicking two buttons ('update' then 'close').


BINARIES
--------

It seems that GitHub is going to remove the "Downloads" section.
Currently, it is still active at

    https://github.com/quetzalcoatl/xvsr10/downloads

but I don't know how long will they survive there.

According to  https://github.com/blog/1302-goodbye-uploads it seems
that the 'Downloads' that the GitHub hosted are goind to evaporate.

I'll try to setup some other place, but untill then, please use the
old GitHub (now-hidden) download page.


REQUIREMENTS:
-------------

Of course, a xUnit library is needed. You dont have to install it in
any special place. Just "Add reference" to it and write tests as usual,
and the runner will have no problems with finding it when needed. 

                        =HOWEVER=

Please note, that this project still requires a hot fixed version
of ExecutorWrapper class. This time it is completely known why, and
it is because the current (2012-04-01, no joke) version of it contains
a bug that interferes with Visual Studio message transporting services.
A patch against this bug was recently posted to the xUnit issue board
(http://xunit.codeplex.com/workitem/9780) and awaits attention:)

Until it is incorporated (if ever), you have to either patch it yourself,
or simply let the 'installer' to use the version supplied in "imports".

The patch to the class does not affect neither the xunit.dll nor the
xunit.extensions.dll, so you may freely use whatever version you have.
The only file affected by the bug is xunit.utility.runner.dll. It is
shipped with the xUnit libraries, but usually you don't use it. The
xUnit GUI and Console runners use it internally and xVSR10 isn't
different. If you have your own custom version of this assembly for
some specific reason, please check whether you should patch it too.
In no other cases you should have to worry about that. xVSR10 may
use the patched one, while all other programs use the standard one.


NOTES ON USAGE:
---------------

Remember that tests ideally should reside in a separate project, of the
'Test Project' type. The default reasoning is that the test code should
not clutter the original module. This xUnit runner is built upon builtin
test runner and it adheres to that rule: you will not see item templates
nor all the handy buttons/toolbars/commands unless the tests are in some
'Test Project'. Simply add a new project of that type to the solution,
move your tests there and have fun.

If for some reason you really don't want to create a separate project
for keeping and running the tests, you can DESIGNATE ANY normal project
to be also a test project: right click on it in the Solution Explorer
and choose "Enable test extensions" (xvsr10 bonus thingy). You may have
to unload and reload the project afterwards. After doing so, that project
should be recognized as a test project and the runner should work properly
with tests from it. If you have clicked it and then changed your mind,
simply "Disable test extensions" in a similar way.

Another addon you may find useful is 'Shutdown QTAgent' from Tests main
menu. It can be irritating that the runner currently does not support
stopping and pausing tests, especially if you manage somehow to deadlock
or starve the test process. You can simply kill the QTAgent with TaskManager,
but I find that 'Shutdown QTAgent' option quicker and more handy.


UNINSTALLATION:
---------------

Uninstalling via Extension Manager is NOT ENOUGH. If you are going to
uninstall the runner, then FIRST use the 'xUnit runner manager' from
'Tests' menu and uninstall all patches (three clicks: "all:uninstall",
'update' then 'close'), and only then uninstall the runner extension.

If you happen to accidentially 'just uninstall' from the extension
manager - do not worry. It is safe to leave the tiny junk behind, it
should not interfere with anything. In case you want to fix/tidy it:
- you may reinstall the VSIX and use the 'xUnit runner manager' properly
- or, you may go to Common7/IDE/PrivateAssemblies in your VisualStudio
installation and delete the xunit runner's directory by hand.


FINAL WORDD
-----------

If by any chance you are interested in the gory details of the changes:
    http://quetzalcoatl-pl.blogspot.com/search/label/xvsr10
but beware, I sometimes happen to commit a *long* writing.

About

xvsr10 is a VisualStudio2010 test runner package for xUnit.net

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages