FitNesse 或 FitSharp 是否支持通用配置文件?

Does FitNesse or FitSharp support a general-purpose configuration file?

我知道有一个 plugins.properties 文件用于配置和自定义 FitNesse 环境,并且 FitSharp 支持用于某些环境设置的套件配置文件。但是 FitNesse 或 FitSharp 是否支持用于设置符号或标记变量的通用配置文件?

我问的原因是我正在使用 RestFixture,这是一个允许调用 RESTful 网络服务的插件。 RestFixture table 将主机 URL 作为 fixture 参数。我想将主机 URL 从测试页面中移到一个配置文件中,以便测试页面在不同的环境中是相同的,例如开发、测试和生产。

在根页面中定义一个标记变量让我完成了大部分工作,但我更愿意将变量完全移出任何页面。

顺便说一下,我正在使用 RestFixture 的 .NET 端口,RestFixture.Net,所以我真的在寻找适用于 .NET / FitSharp 的解决方案。

运行 通过使用符号 links 实现在不同环境下的相同测试。

如您所知,您可以在套件页面上为套件中的所有测试设置一个变量:

---
Suite
Help: Suite to contain tests for local testing
---
!define targetenvironment {http://localhost:8080}

像这样构建这个套件,因此没有任何嵌套页面。还构建另一个包含相同 属性 但具有不同值的套件页面。

---
Suite
Help: Suite to contain tests for local testing
---
!define targetenvironment {http://192.168.10.1:8080}

现在在第三个套件中构建您的测试用例,并使用此 属性 作为您的示例的目标。

最后,回到您的第一个套件页面并转到页面属性,您可以在其中填写一个 Symbolic link,您基本上实例化了测试套件。现在当 运行 这个套件页面时,目标 属性 被填充到测试中。当对第二个套件页面执行相同操作时,您会发现在测试中,目标 属性 已使用该值填充。

Suite .wiki 文件现在看起来像这样:

---
Suite
Help: Suite to contain tests for local testing
SymbolicLinks
  TestSet: .SuiteContainingTests
---
!define targetenvironment {http://localhost:8080}

并且可以在浏览器中看到包含测试的套件。

但是,测试是相同的,无论您在何处编辑它们(从套件 1、2 或 3),您将始终编辑相同的文件。

原来plugins.properties文件一个通用配置文件。

我已经阅读了有关 plugin.properties 文件的 FitNesse 用户指南页面:http://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile 我认为 plugin.properties 文件仅支持指定的内置属性。但是,我错过了底部的一个小注释:

Other properties

There are more properties which can be used to tweak parts of FitNesse:

...

  • Any variable that can be defined on a wiki page.

我试验过,发现文件中任何 key=value 形式的键值对都可以在测试页中读取。

一些使用注意事项:

1) plugins.properties 文件中以 #(哈希)、//(两个正斜杠)、;(分号)或 ::(两个冒号)都被视为注释。或者,更有可能的是,它们本身不是注释,只是不会导致任何错误;

2) plugins.properties 文件中的反斜杠需要加倍转义。例如 "C:\FitNesse" 应该写成 C:\FitNesse;

3) 要在 FitNesse 测试页中引用 plugins.properties 文件中的 属性,请使用 FitNesse 标记变量语法:${属性 name}
例如${主题}

4) 环境变量可以包含在 plugins.properties 文件中,使用 FitNesse 标记变量语法。例如 FitNessePluginsDirectory=${FITNESSE_HOME}\Plugins,其中 FITNESSE_HOME 是一个环境变量。