FitNesse構成ファイル
-
19-08-2019 - |
質問
機能テストフレームワークとしてFitNesseを使用しています。 FitNesseが設定を必要とするコードを実行すると問題が発生します。
構成ファイルから接続文字列を取得する必要がある場合、FitServer.exe.configに接続文字列を追加することで、接続文字列を機能させることができます。しかし、私はその解決策が好きではありません。 FitNesseに独自の構成ファイル、つまりTheNameOfMyApp.dll.configを読み込ませたい。
これは可能ですか?
解決
もちろん、簡単です。 dotnetまたはdotnet2テストランナーを使用していると仮定しています。 dotnet2テストランナーを使用しています。設定方法は次のとおりです。
まず、COMMAND_PATTERNを!defineするときに、-c suite.configを含めます。たとえば、ルートには次のものがあります:
!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の相対パスに影響します。パスは、suite.configまたはfitnesse.jarではなく、TEST_RUNNERの場所に相対的です。
他のヒント
はい、それは可能ですが、ひどい負荷がかかります。テストを含むテストプロジェクトと、テストにデータと構成設定を提供する機能がある<!> quot; wrapper <!> quot; -projectを定義する必要があります。