2009-03-17 18 views
5

Sto utilizzando FitNesse come framework di test funzionale. Sto avendo problemi quando FitNesse esegue il codice che richiede la configurazione.File di configurazione di FitNesse

Se ho bisogno di ottenere una stringa di connessione dal file di configurazione, posso farlo funzionare aggiungendolo a FitServer.exe.config. Tuttavia, non mi piace questa soluzione. Vorrei che FitNesse caricasse il mio file di configurazione, ovvero TheNameOfMyApp.dll.config.

È possibile?

risposta

5

Certo, facile da fare. Suppongo che tu stia utilizzando il testner dotnet o dotnet2. Sto usando il test runner dotnet2, ed ecco come ho impostato:

Per prima cosa, quando definisci il tuo COMMAND_PATTERN, includi -c suite.config. Per esempio, ho il seguente nella root:

!define COMMAND_PATTERN {%m -c suite.config %p} 
!define TEST_RUNNER {..\..\bin\Debug\FitServer.exe} 

suite.config va nella stessa directory come fitnesse.jar:

<suiteConfig> 
    <fit.Settings> 
     <appConfigFile>..\..\MyProjectFolder\fitnesse\MyProjectName.config</appConfigFile> 
    </fit.Settings> 
    <fit.Assemblies> 
    </fit.Assemblies> 
    <fit.FileExclusions> 
     <add>^\.svn$</add> 
    </fit.FileExclusions> 
    <fit.Namespaces> 
    </fit.Namespaces> 
    <fit.CellHandlers> 
    </fit.CellHandlers> 
    <fitlibrary.CellHandlers> 
    </fitlibrary.CellHandlers> 
</suiteConfig> 

MyProjectName.config assomiglia a questo:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="keyname" value="something" /> 
    </appSettings> 

</configuration> 

È possibile semplificare le cose da soli se si utilizza un percorso assoluto per appConfigFile. Ho iniziato con un percorso assoluto, ho fatto funzionare le cose, poi sono passato a un percorso relativo per tentativi ed errori.

Nota che eseguo il test runner da una posizione non standard, che influirà sul relativo percorso in suite.config. Il percorso è relativo alla posizione TEST_RUNNER, NON a suite.config o fitnesse.jar.

+1

Anche se funziona, puoi anche usare l'opzione -a (invece dell'opzione -c) come indicato su http://stackoverflow.com/questions/1849172/fitnesse-app-config - solo un po 'più semplice –

0

sì è possibile ma un carico di lavoro terribile. è necessario definire un progetto di test in cui siano presenti i test e un progetto "wrapper" in cui si disponga della funzionalità di fornire i test con le impostazioni di dati e di configurazione.

+0

Hai un collegamento a una soluzione di esempio o tutorial? – grootjans