2

我正在将 FitNesse 与 FitSharp (.Net) 一起使用,并且我正在尝试设置一个测试套件:

  1. 生成随机端口
  2. 设置执行路径
  3. 在portpath上启动进程,并检索它的pid

我的 C# 代码如下所示:

public int RandomPort() {...}
public int SetupWebsite() {...}
public int StartWebsite(string path, int port) {...}

我的 Fitnesse 看起来像这样:

!|Setup|
|RandomPort?|
|>>port|

!|Setup|
|SetupWebsite?|
|>>path|

!|Setup|
|StartWebsite?|<<path|<<port|
|>>pid|

错误 :fitSharp.Machine.Exception.MemberMissingException: Member 'startwebsite' with 0 parameter(s) not found for type 'Web.Api.Tests.Setup'.

我尝试了很多事情,但它从来没有奏效,问题不在于我做错了什么(这很明显),但我找不到如何正确地做...

我真的很难用 Fitnesse...在 Web.Api 2 项目上启动 IISExpress(我的设置),然后对其进行一些 Json/Rest 调用,我的 Teardown 应该简单地终止 IISExpress 进程,并清除临时网站文件夹。

感谢帮助 !

4

2 回答 2

0

符号保存操作符 (>>) 和符号调用操作符 (<<) 可用于在故事测试中的一个地方收集一个值,然后在其他地方使用它。符号保存运算符可用于任何预期值单元格。不是将实际值与预期值进行比较,而是将实际值与符号名称一起保存。

您可以使用以下check关键字:

!|setup|
|check|randomport|>>port|
|check|setupwebsite|>>path|
|check|startwebsite|<<path||<<port|>>pid|

http://fitsharp.github.io/Fit/SymbolValues.html

您也可以使用name关键字。name关键字将对象分配给符号名称,以后可以使用该名称检索对象。

!|setup|
|name|port|randomport|
|name|path|setupwebsite|
|name|pid|startwebsite|<<path||<<port|

http://fitsharp.github.io/Fit/NameKeyword.html

请注意,在方法调用中,方法名称是通过连接每个其他单元格来创建的。其他交替的单元格是输入值。

于 2015-05-07T15:28:19.717 回答
0

多亏了迈克,它几乎完成了。我不明白为什么,但我必须改变方法StartWebsite,就像这样StartWebsiteOnPortAndPath,所以我可以拆分通话......奇怪。

我的最终结果:

!|setup|
|check|random port|>>port|
|check|setup website|>>path|
|check|start website on port|<<port|and path|<<path|>>pid|
于 2015-05-11T11:14:50.777 回答