我正在尝试在 FitNesse 测试中调用 WCF 服务。当我尝试使用以下代码初始化客户端时:
using (var client = new Status.StatusSoapClient())
{
client.Endpoint.Address = new EndpointAddress(url);
response = client.GetProductionTicketStatus(dealerId, orderId, orderLineId);
}
我收到一个错误:
System.InvalidOperationException:在 ServiceModel 客户端配置部分中找不到引用合同“Status.StatusSoap”的默认端点元素。
这是有道理的,因为 .NET Framework 不支持 DLL 的配置。
MSDN 库说:“您必须将配置代码移动到托管环境识别的配置文件中”。但我不确定这是否可以为 FitNesse 完成。
所以我尝试自己创建绑定而不尝试从配置中读取它
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);
但是当我尝试使用此代码运行测试时,我得到“测试被中断并且结果不完整”。FitNesse 上的错误。
这个答案https://stackoverflow.com/a/646177/2211481建议为测试运行者制作 app.config 的副本。当我将我的 app.config 复制到 Runner.exe.config,将其放入 Runner 文件夹并再次运行初始代码时,我得到“测试被中断,结果不完整”。FitNesse 再次出现错误。
有没有办法解决这个问题?