質問

機能テストフレームワークとして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を定義する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top