0

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

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

在根页面中定义一个标记变量可以让我大部分时间到达那里,但我更愿意将变量完全移出任何页面。

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

4

2 回答 2

1

通过使用符号链接来归档在不同环境中运行相同的测试。

如您所知,您可以通过将其放在套件页面上来为西装中的所有测试设置一个变量:

---
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}

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

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

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

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

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

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

于 2017-09-15T07:41:45.883 回答
1

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

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

其他属性

还有更多属性可用于调整 FitNesse 的部分内容:

...

  • 可以在 wiki 页面上定义的任何变量。

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

关于使用的一些注意事项:

1) plugins.properties 文件中的行似乎以# (hash), // (两个正斜杠), ;开头 (分号)或: :(两个冒号)都被视为注释。或者,更有可能的是,它们本身不是评论,但不会导致任何错误;

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

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

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

于 2017-09-17T03:03:18.757 回答