如何在FitNesse测试中调用WCF服务?

时间:2014-12-10 14:22:57

标签: c# wcf fitnesse fitnesse-slim

我试图在FitNesse测试中调用WCF服务。 当我尝试使用以下代码初始化客户端时:

    using (var client = new Status.StatusSoapClient())
    {
        client.Endpoint.Address = new EndpointAddress(url);
        response = client.GetProductionTicketStatus(dealerId, orderId, orderLineId);

    }

我收到错误:

  

System.InvalidOperationException:找不到默认端点   引用合同的元素' Status.StatusSoap'在里面   ServiceModel客户端配置部分。

这是有道理的,因为.NET Framework不支持DLL的配置。

MSDN Library说:"您必须将配置代码移动到托管环境识别的配置文件中#34;。但我不确定FitNesse是否可以做到这一点。

所以我尝试自己创建绑定而不尝试从config

中读取它
    var binding = new BasicHttpBinding();
    binding.SendTimeout = new TimeSpan(0, 0, 0, 0, 100000);
    binding.OpenTimeout = new TimeSpan(0, 0, 0, 0, 100000);
    binding.MaxReceivedMessageSize = 10000;
    binding.ReaderQuotas.MaxStringContentLength = 10000;
    binding.ReaderQuotas.MaxDepth = 10000;
    binding.ReaderQuotas.MaxArrayLength = 10000;
    var endpoint = new EndpointAddress(url);
    var myClient = new Status.StatusSoapClient(binding, endpoint);
    response = myClient.GetProductionTicketStatus(dealerId, orderId, orderLineId);

但是当我尝试使用此代码运行测试时,我得到了#34;测试被中断,结果不完整。" FitNesse上的错误。

这个答案https://stackoverflow.com/a/646177/2211481建议为testrunner制作app.config的副本。当我将我的app.config复制到Runner.exe.config时,将它放到Runner文件夹并再次运行初始代码我得到"测试被中断,结果不完整。" FitNesse再次出错。

我有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

通过定义COMMAND_PATTERN来实现它,如下所述:http://twenty6-jc.blogspot.nl/2010/07/wcf-and-fitnesse-how-to-load-clients.html

  

!定义COMMAND_PATTERN {%m -a   C:\项目\ someapplication \ acceptancetests \ acceptancetests.dll.config   -r fitSharp.Slim.Service.Runner,c:\ tools \ nslim \ fitsharp.dll%p}

为testrunner制作app.config的副本也最终有效。

我得到了#34;测试被中断,结果不完整。"由于我的代码中的错误,我在调试后解决了错误。

答案 1 :(得分:0)

请参阅此帖子:FitNesse App.Config

NetRunner使用配置文件作为列表中的第一个dll。

例如,对于行:

!path C:\Probjects\HelloWorld\bin\Debug\FitNesseHelloWorld1.dll, C:\Probjects\HelloWorld\bin\Debug\FitNesseHelloWorld2.dll

NetRunner将使用配置文件" C:\ Probjects \ HelloWorld \ bin \ Debug \ FitNesseHelloWorld1.dll.config"