我知道有一个plugins.properties文件用于配置FitNesse环境并自定义它,FitSharp支持某些环境设置的套件配置文件。但FitNesse或FitSharp是否支持通用配置文件,用于设置符号或标记变量?
我问的原因是我使用的是RestFixture,一个允许调用RESTful Web服务的插件。 RestFixture表将主机URL作为fixture参数。我想将主机URL从测试页面移到配置文件中,以便测试页面在不同的环境中是相同的,例如开发,测试和生产。
在根页面中定义标记变量会让我大部分时间都在那里,但我更喜欢将变量完全移出任何页面。
顺便说一下,我使用RestFixture的.NET端口,RestFixture.Net,所以我真的在寻找适用于.NET / FitSharp的解决方案。
答案 0 :(得分: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}
现在在第三个套件中构建您的测试用例,并根据您的示例使用此属性作为目标。
最后,返回到您的第一个套件页面并转到页面属性,您可以在其中填写符号链接,您基本上可以实例化测试套件。现在,当运行此套件页面时,目标属性将在测试中填充。对第二个套件页面执行相同操作时,您会发现在测试中,使用该值填充目标属性。
套件.wiki文件现在看起来像这样:
---
Suite
Help: Suite to contain tests for local testing
SymbolicLinks
TestSet: .SuiteContainingTests
---
!define targetenvironment {http://localhost:8080}
可以在浏览器中看到包含测试的套件。
但是,测试是相同的,无论您在哪里编辑它们(从套件1,2或3),您都将始终编辑相同的文件。
答案 1 :(得分:1)
事实证明,plugins.properties文件 是一个通用配置文件。
我已阅读有关plugin.properties文件的FitNesse用户指南页面:http://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile我认为plugin.properties文件仅支持指定的内置属性。然而,我错过了底部的一个小纸条:
其他属性
还有更多属性可用于调整部分内容 FitNesse:
<强> ... 强>
- 可以在维基页面上定义的任何变量。
我进行了实验,发现可以在测试页中读取文件key=value
中的任何键值对。
1)plugins.properties文件中的行似乎以#(哈希), // (两个正斜杠),; (分号)或 :: (两个冒号)都被视为注释。或者,更有可能的是,他们本身并不是评论,但不会导致任何错误;
2)plugins.properties文件中的反斜杠需要通过加倍来转义。例如&#34; C:\ FitNesse&#34;应写成C:\\FitNesse
;
3)要从FitNesse测试页中的plugins.properties文件引用属性,请使用FitNesse标记变量语法: $ {property name}
例如$ {Theme}
4)使用FitNesse标记变量语法,可以在plugins.properties文件中包含环境变量。例如FitNessePluginsDirectory=${FITNESSE_HOME}\\Plugins
,其中FITNESSE_HOME是环境变量。