úterý, září 19, 2006

Jak retardovat VS2005

Visual Studio 2003 blahé paměti, nechť je mu země lehká, automaticky označovalo právě otevřený soubor v Solution Exploreru. Mnoho lidí na to nadávalo, protože stojíc v nějaké složce otevřeli jiný soubor a Solution Explorer uskočil někam hentam onam, takže pak museli pracně hledat původní složku na kterou se dívali.

Softwareový bůh je vyslyšel a v novém Visual Studiu 2005 chování toto zrušil. Ale ajta: našli se mnozí tací, které bylo slyšeti oplakávajíc fíčury ztracené a nadávajíc, že se v Solution Exploreru neorientujavša, neboť neznají lokaci právě otevřeného souboru. Nutno ovšem podotknouti, že struktura projektů a složek kverulantů těchto připomíná často spíše First-In-Never-Out kompostík než pravé vývojářské pískoviště. A zmizlo jim také Output Window, které se dříve dralo na světlo boží při každé kompilaci.

Dlouho, předlouho dumaly týmy expertů a vymýšleli řešení. Po několika desetiletích bloudění a usilovné práce přišli na tento postup:

- Otevř sobě dialog "Tools" - "Options".
- Ukaž rypákem krysy své na "Projects and Solutions" skupinu i stiskni levý čumák její.
- Hřebíkem označ "Track Active Item in Solution Explorer" a "Show Output window when build starts".
- Rypákem krysy své "OK" zamáčkni.

A jak psáno jest tak se také stane.

středa, září 13, 2006

Jak ladit unit testy s ReSharperem

Tak jsem si nedávno do svého VS2005 nainstaloval nový zpomalovač ReSharper 2.0.1. Vypadá to moc chytře (někdy až moc - např. intellisense má VS lepší a daleko rychlejší), a v nové verzi je integrované spouštění unit testů. Když otevřete nějakou třídu s testama, vedle metod se objeví zelenožluté puntíky, kterými se dá jednoduše spustit nebo debuggovat unit test. Spouštění zafungovalo samo a bez problémů, jenže ladění ne a ne se rozběhnout. Pořád to místo unit test metody spouštělo celý projekt.

Pokud máte podobný problém, zkuste ho vyřešit takhle:

1. Pokud jste někdy laborovali s TestDriven.Net, zkontrolujte nastavení projektu. Otevřete Properties projektu obsahující test. Přejděte na záložku Debug. Ve skupině "Start Action" musí být vybráno "Start project" (někdy tam může být nastavený TestDriven).

2. V menu "ReSharper – Options…" zobrazte "Unit Testing" (úplně dole) a ve skupině "Debugging Method" vyberte "Use the project being tested". Výchozí hodnota je při instalaci nastavena na "Use the current startup project", což je, dle mého skromného názoru, volovina.

3. Pak už můžete spouštět testy kliknutím na zelenožlutý puntík vlevo od metody s atributem Test.

Také můžete sledovat průběh spouštění testů spolu s podrobným výstupem v okně Unit Test Runner. Pokud nevyskočí samo, otevřete ho z menu "ReSharper - Windows - Unit Test Runner". Takže nepotřebujete NUnit GUI a nemusíte si pořizovat TestDriven.

Jeden háček to ale má. Při každém testování R# změní v nastavení Solution výchozí startup projekt na právě testovaný projekt, takže pokud pak chcete normálně spustit aplikaci, musíte znovu nastavit výchozí projekt.

UPDATE: Pokud máte ReSharper verze 2.5 nebo nižší, nebudete moci debuggovat projekty umístěné v nějaké Solution Folder. Ve verzi 3.0 už to funguje.