Premessa:
questo template é stato creato per VB.NET, penso che la creazione di un analogo
per C# sia abbastanza simile.
Settimana scorsa mi sono
finalmente deciso a dare una svolta alla noiosissima questione della creazione
di progetti per effettuare unit testing con NUnit, così ho iniziato
a spulciare in rete, tra prove ed errori, in maniera completamente
empirica questo é quanto sono riuscito a mettere insieme.
Scopo: creare un template di
progetto che contenga una classe e:
Riferimento (e riferimento
importato a livello di progetto) all'assembly Nunit.framework
Avvio programma esterno:
c:\programmi\nunit\bin\nunit-gui.exe
Ecco il mio procedimento:
Aprire la cartella
C:\Programmi\Microsoft Visual Studio .NET 2003\Vb7\VBProjects
Copiare il file
ClassLibrary.vsz in NUnitTestLibrary.vsz
Aprire il file appena creato e
modificare la linea: Param="WIZARD_NAME= NUnitTestLibrary"
Aprire la cartella
C:\Programmi\Microsoft Visual Studio .NET 2003\Vb7\VBWizards
Copiare la cartella ClassLibrary
in NUnitTestLibrary
Aprire la cartella
C:\Programmi\Microsoft Visual Studio .NET
2003\Vb7\VBWizards\NUnitTestLibrary\Scripts\1040
Editare il file default.js,
costituendo tutte le occurrenze (una sola ) di ClassLibrary con
\\NUnitTestLibrary
Aprire la cartella C:\Programmi\Microsoft Visual Studio
.NET 2003\Vb7\VBWizards\NUnitTestLibrary\Templates\1040
Rinominare il file
ClassLibrary.vbproj in NUnitTestLibrary.vbproj
Aprire il file
NUnitTestLibrary.vbproj con un editor di testo (Non VS.NET)
Aggiungere le seguenti 4 linee
nelle sezioni config:
StartAction =
"Program"
StartArguments = "Test.dll"
StartProgram = "c:\Programmi\NUnit
V2.1\bin\nunit-gui.exe"
StartWorkingDirectory = "\bin"
Aggiungere alla sezione
References questo TAG:
<Reference Name =
"nunit.framework"
AssemblyName = "nunit.framework"
HintPath =
"c:\Programmi\NUnit V2.1\bin\nunit.framework.dll"
AssemblyFolderKey =
"hklm\dn\corival assemblies"
/>
Aggiungere alla sezione Imports
questo TAG:
<Import Namespace =
"nunit.framework" />
Chiudete, salvate, pregate ed
avviate Visual Studio!
Segue qui il file vbproj
completo (come fatto sulla mia macchina)
<VisualStudioProject>
<VisualBasic>
<Build>
<Settings
OutputType =
"Library"
StartupObject = ""
>
<Config
Name =
"Debug"
DebugSymbols =
"true"
DefineDebug =
"true"
DefineTrace =
"true"
IncrementalBuild =
"true"
OutputPath = "bin"
StartAction =
"Program"
StartArguments =
"Test.dll"
StartPage =
""
StartProgram = "c:\Programmi\NUnit
V2.1\bin\nunit-gui.exe"
StartURL =
""
StartWorkingDirectory = "\bin"
/>
<Config
Name =
"Release"
DebugSymbols =
"false"
DefineDebug =
"false"
DefineTrace =
"true"
IncrementalBuild =
"false"
Optimize =
"true"
OutputPath =
"bin"
/>
</Settings>
<References>
<Reference Name = "System"
/>
<Reference Name = "System.Data"
/>
<Reference Name = "System.XML" />
<Reference Name =
"nunit.framework"
AssemblyName =
"nunit.framework"
HintPath = "c:\Programmi\NUnit
V2.1\bin\nunit.framework.dll"
AssemblyFolderKey =
"hklm\dn\corival
assemblies"
/>
</References>
<Imports>
<Import Namespace = "Microsoft.VisualBasic"
/>
<Import Namespace = "System"
/>
<Import Namespace = "System.Collections"
/>
<Import Namespace = "System.Data"
/>
<Import Namespace = "System.Diagnostics"
/>
<Import Namespace = "nunit.framework"
/>
</Imports>
</Build>
<Files>
<Include>
</Include>
</Files>
</VisualBasic>
</VisualStudioProject>
Io ho anche modificato il file
Class.vb in:
<TestFixture()> _
Public
Class [!output SAFE_ITEM_NAME]
#Region "Setup e TearDown"
<TestFixtureSetUp()> _
Public Sub Setup()
End Sub
<TestFixtureTearDown()> _
Public Sub
TearDown()
End Sub
#End Region
<Test()> _
Public Sub Test()
End Sub
End Class