2009-03-17 5 views
5

Ich verwende FitNesse als Framework für den funktionalen Test. Ich bekomme Probleme, wenn FitNesse Code ausführt, der konfiguriert werden muss.FitNesse-Konfigurationsdateien

Wenn ich eine Verbindungszeichenfolge aus der Konfigurationsdatei abrufen muss, kann ich sie zur Arbeit bringen, indem ich sie zur FitServer.exe.config hinzufüge. Allerdings mag ich diese Lösung nicht. Ich möchte, dass FitNesse meine eigene Konfigurationsdatei lädt, nämlich TheNameOfMyApp.dll.config.

Ist das möglich?

Antwort

5

Sicher, einfach zu tun. Ich gehe davon aus, dass Sie den Dotnet oder Dotnet2 Test Runner verwenden. Ich verwende den dotnet2-Test-Runner und hier ist, wie ich ihn eingerichtet habe:

Zuerst, wenn Sie Ihre COMMAND_PATTERN definieren, enthalten Sie -c suite.config. Zum Beispiel habe ich folgend in root:

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

suite.config geht in dem gleichen Verzeichnis wie 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 wie folgt aussieht:

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

</configuration> 

Sie können die Dinge vereinfachen, wenn Sie einen absoluten Pfad für die appConfigFile verwenden. Ich begann mit einem absoluten Pfad, brachte Dinge zum Laufen und wechselte dann durch Versuch und Irrtum zu einem relativen Pfad.

Beachten Sie, dass ich meinen Test Runner von einem nicht standardmäßigen Speicherort ausführen, der sich auf den relativen Pfad in Suite.config auswirkt. Der Pfad ist relativ zu Ihrem TEST_RUNNER-Speicherort, NICHT zu suite.config oder fitnesse.jar.

+1

Obwohl dies funktioniert, können Sie auch die Option -a (anstelle der Option -c) verwenden, wie unter http://stackoverflow.com/questions/1849172/fitnesse-app-config beschrieben - nur ein bisschen einfacher –

0

Ja ist es möglich, aber eine schreckliche Last der Arbeit. Sie müssen ein Testprojekt definieren, in dem Sie Ihre Tests haben und ein "Wrapper" -Projekt, in dem Sie die Tests mit Daten und Konfigurationseinstellungen durchführen können.

+0

Haben Sie einen Link zu einer Beispiellösung oder einem Tutorial? – grootjans