私は機能テストフレームワークとしてFitNesseを使用しています。 FitNesseが設定が必要なコードを実行しているときに問題に遭遇しています。FitNesse設定ファイル
構成ファイルから接続文字列を取得する必要がある場合は、FitServer.exe.configに追加することで動作させることができます。しかし、私はその解決策が気に入らない。 FitNesseに自分の設定ファイル、つまりTheNameOfMyApp.dll.configをロードします。
これは可能ですか?
私は機能テストフレームワークとしてFitNesseを使用しています。 FitNesseが設定が必要なコードを実行しているときに問題に遭遇しています。FitNesse設定ファイル
構成ファイルから接続文字列を取得する必要がある場合は、FitServer.exe.configに追加することで動作させることができます。しかし、私はその解決策が気に入らない。 FitNesseに自分の設定ファイル、つまりTheNameOfMyApp.dll.configをロードします。
これは可能ですか?
確かに、簡単です。私はあなたが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ではありません。
はい、恐ろしい仕事の負担があります。テストがある場所でテストプロジェクトを定義し、テストにデータと構成設定を提供する機能を持つ「ラッパー」プロジェクトを定義する必要があります。
サンプルソリューションやチュートリアルへのリンクはありますか? – grootjans
これは機能しますが、http://stackoverflow.com/questions/1849172/fitnesse-app-configに記載されているように-cオプションの代わりに-aオプションを使用することもできます。 –