我使用 FitNesse 作为功能测试框架。当 FitNesse 运行需要配置的代码时,我遇到了麻烦。
如果我需要从配置文件中获取连接字符串,我可以通过将其添加到 FitServer.exe.config 来使其工作。但是,我不喜欢这种解决方案。我希望 FitNesse 加载我自己的配置文件,即 TheNameOfMyApp.dll.config。
这可能吗?
我使用 FitNesse 作为功能测试框架。当 FitNesse 运行需要配置的代码时,我遇到了麻烦。
如果我需要从配置文件中获取连接字符串,我可以通过将其添加到 FitServer.exe.config 来使其工作。但是,我不喜欢这种解决方案。我希望 FitNesse 加载我自己的配置文件,即 TheNameOfMyApp.dll.config。
这可能吗?
当然,很容易做到。我假设您使用的是 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 的。
是的,这是可能的,但工作量很大。您需要定义一个包含测试的测试项目和一个“包装”项目,您可以在其中定义为测试提供数据和配置设置的功能。