我已经在C#dotnet核心的消费者端实现了PACT,并且我能够使用以下代码将*.json协定文件发布到PactBrocker。
var pactPublisher = new PactPublisher("http://domain.pact.dius.com.au", new PactUriOptions("***", "***"));
pactPublisher.PublishToBroker($"..pactsuserservice.api-event.api.json",
"1.0.2");
在提供者方面(同样在C#dotnet核心中(,当我尝试使用单元测试用例验证相同发布的Pact时(见下面的代码(:
[Fact]
public void EnsureEventApiHonoursPactWithConsumer()
{
//Arrange
// createing the "config" object
//Act / Assert
IPactVerifier pactVerifier = new PactVerifier(config);
pactVerifier
.ProviderState($"{_providerUri}/provider-states")
.ServiceProvider("Event.API", _providerUri)
.HonoursPactWith("UserService.API")
.PactUri("http://domain.pact.dius.com.au/pacts/provider/Event.API/consumer/UserService.API/version/1.0.2", new PactUriOptions("***", "***")).Verify();
}
当我运行该单元测试时,我得到了以下的错误。
PactNet.PatFailureException:协定验证失败。参见输出详细信息。如果输出为空,请提供自定义配置。你的测试框架的输出(IOutput(,因为我们做不到写入控制台。位于中的PactNet.Core.PatCore主机`1.Start((C: \projects\pact-net\PatNet\Core\PatCoreHost.cs:line 139
在Event.Test.EventApiTests.EnsureEventApiHonorsActWithConsumer((在C:\POC\pat2\Event.Api\Event.Test\EventAPITests.cs:line 55 中
从读取文件时出错http://domain.pact.dius.com.au/pacts/provider/Event.API/consumer/UserService.API/version/1.0.2
由于目标计算机主动拒绝,无法建立任何连接为"domain.pact.dios.com.au"端口80建立connect(2(C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/rub/lib/ruby/2.2.0/net:http.rb:879:in`初始化
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/net/http.rb:879:in`打开
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/net/http.rb:879:in`阻止连接
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/timeout.rb:74:in`timeout‘
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/net/http.rb:878:in`连接
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/net/http.rb:863:in`do_start'
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/rub/2.2.0/net/http.rb:852:in`启动
有人能帮助修复这个错误吗?PACT代理服务器不在我的控制范围内。我是从http://pact.dius.com.au/地点
得到了答案。我当时在办公室的代理环境中。它在我家很管用。此外,我需要点击https(端口443(,而不是http(端口80(。