5

我使用 FitNesse 作为功能测试框架。当 FitNesse 运行需要配置的代码时,我遇到了麻烦。

如果我需要从配置文件中获取连接字符串,我可以通过将其添加到 FitServer.exe.config 来使其工作。但是,我不喜欢这种解决方案。我希望 FitNesse 加载我自己的配置文件,即 TheNameOfMyApp.dll.config。

这可能吗?

4

2 回答 2

5

当然,很容易做到。我假设您使用的是 dotnet 或 dotnet2 测试运行器。我正在使用 dotnet2 测试运行程序,这是我设置它的方式:

首先,当您定义 COMMAND_PATTERN 时,包括 -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 中的相对路径。该路径是相对于您的 TEST_RUNNER 位置的,而不是相对于 suite.config 或 Fitnesse.jar 的。

于 2009-03-17T18:24:58.223 回答
0

是的,这是可能的,但工作量很大。您需要定义一个包含测试的测试项目和一个“包装”项目,您可以在其中定义为测试提供数据和配置设置的功能。

于 2009-03-17T13:34:41.917 回答