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.) :D

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

Zanechte komentář