Debug unit testu pomoci Visual C# Express
Je to už nějaký pátek, co firma Microsoft dala k dispozici ke stažení speciální Express edici vývojářských nástrojů. Ze začátku to bylo v x různých beta verzích, neustále se spekulovalo o budoucí ceně těchto nástrojů, apod. Nakonec ale bylo pro mne velkým překvapením, že MS dal všechny verze gratis navěky a že se nejedná o nějaký kriplware, nějaké brutálně ořezané demo na Visual Studio 2005. Jsou to velmi použitelné nástroje a používají je například i profíci, kterým je na některé projekty líto dlouze startovat molochoidní Velké Studio.
Expreska ale mají jedno velké omezení, nejde do nich nainstalovat pluginy, tzv. AddIns. Například velmi užitečné rozšíření jako je TestDriven.NET pro pohodlné spouštění a debugování unit testů. TestDriven příkazy prostě nejsou vpuštěny do zamčených menu Express nástrojů.
Ale jde to drobátko obejít a to hned dvěma cestami.
Jedna cesta vede přes přidání WinForm projektu, hned vedle testovaného dll projektu, kde jsou NUnit tridy a metody. A v tomto bočním projektíku prostě jen pustíte v debug režimu NUnitu Runner. Je to prosté mily Watsone. (Ale sám bych na to nikdy nepřišel.)
using System;
using System.Windows.Forms;
namespace WindowsApplication2
{
static class Program
{
static void Main(string[] args)
{
NUnit.Gui.AppEntry.Main(args);
}
}
}

NUnit Runneru lze předat hned prvním parametrem jaký že má otevřít vlastní NUnit projektík či dll knihovnu nebo exe soubor. Pohodlně tam můžete dát parametry přímo z kódu nebo třeba přes parametry příkazové řádky v nastavení projektu a převzít tak parametry přicházející do metody Main(). Jen si nezapomeňte přidat referenci na nunit-gui-runner a na ty testované projektíky, ať máte vše po ruce.
A druhý způsob je použitím zápisu do .user souboru u testovaného projektíku, není tedy potřeba žádného bočního projektíku. Jen pak přímo spouštíte dll-kový projektík, díky zápisu od .user souboru se spustí NUnitu Runner, vyberete a spustíte test a hop … stojíte na nastaveném breakpointu.
<StartAction>Program</StartAction> <StartProgram>C:\\Program Files\\NUnit-Net-2.0 2.2.8\\bin\\nunit-gui.exe</StartProgram> <StartArguments>TestLib.dll</StartArguments>

Když nenajdete .user soubor v projektu, tak to znamená, že jste ještě neudělali žádné vlastní změny do nastavení projektu. Stačí vlézt do properties projektu, nastavit například na Debug záložce commandline argument „aaa“. V menu pak stačí dát Save All příkaz a .user soubor je na světe.
Zdroje: Charlie Poole, Stewart Robertson