2009-03-17 19 views
5

私は機能テストフレームワークとしてFitNesseを使用しています。 FitNesseが設定が必要なコードを実行しているときに問題に遭遇しています。FitNesse設定ファイル

構成ファイルから接続文字列を取得する必要がある場合は、FitServer.exe.configに追加することで動作させることができます。しかし、私はその解決策が気に入らない。 FitNesseに自分の設定ファイル、つまりTheNameOfMyApp.dll.configをロードします。

これは可能ですか?

答えて

5

確かに、簡単です。私はあなたがdotnetまたはdotnet2テストランナーを使用していると仮定しています。私はdotnet2テストランナーを使用しています。これはどうやってセットアップしたのですか?

最初に、COMMAND_PATTERNを定義するときは、-c suite.configをインクルードしてください。例えば、私は、rootで次のようにあります

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

suite.configは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は次のようになります。

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

</configuration> 

appConfigFileに絶対パスを使用すると、自分で簡単に作業を進めることができます。私は絶対的な道から出発し、物事を働かせてから、試行錯誤によって相対的な道に切り替えました。

私はテストランナーを非標準の場所から実行しているので、suite.configの相対パスに影響します。パスはTEST_RUNNERの場所からの相対パスであり、suite.configやfitnesse.jarではありません。

+1

これは機能しますが、http://stackoverflow.com/questions/1849172/fitnesse-app-configに記載されているように-cオプションの代わりに-aオプションを使用することもできます。 –

0

はい、恐ろしい仕事の負担があります。テストがある場所でテストプロジェクトを定義し、テストにデータと構成設定を提供する機能を持つ「ラッパー」プロジェクトを定義する必要があります。

+0

サンプルソリューションやチュートリアルへのリンクはありますか? – grootjans