我已经在C#dotnet核心的用户端实现了PACT,并且能够使用以下代码将* .json pact文件发布到PactBrocker。
var pactPublisher = new PactPublisher("http://domain.pact.dius.com.au", new PactUriOptions("***", "***"));
pactPublisher.PublishToBroker($"..\pacts\userservice.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.PactFailureException:Pact验证失败。查看输出 有关详细信息。如果输出为空,请提供自定义 您的测试框架的config.Outputters(IOutput),因为我们无法 写入控制台。在PactNet.Core.PactCoreHost`1.Start()中 C:\ projects \ pact-net \ PactNet \ Core \ PactCoreHost.cs:第139行
在Event.Test.EventApiTests.EnsureEventApiHonoursPactWithConsumer() 在C:\ POC \ pact2 \ Event.Api \ Event.Test \ EventAPITests.cs:第55行
读取文件错误 http://domain.pact.dius.com.au/pacts/provider/Event.API/consumer/UserService.API/version/1.0.2
由于目标计算机处于活动状态,因此无法建立连接 拒绝了。 -为“ domain.pact.dius.com.au”端口80连接(2) C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/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/ruby/2.2.0/net/http.rb:879:在 “打开”
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:879:在 `阻止连接'
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/timeout.rb:74:in `超时'
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:878:在 `连接'
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:863:在 `do_start'
C:/POC/pact2/Event.Api/Event.Test/bin/Debug/netcoreapp2.0/pact-win32/lib/ruby/lib/ruby/2.2.0/net/http.rb:852:在 '开始'
有人可以帮助解决此错误吗? PACT代理服务器不在我的控制范围内。我是从http://pact.dius.com.au/网站上获得的。
答案 0 :(得分:1)
得到答案。我当时在办公室的代理环境中。它在我家里很好用。另外,我需要点击https(端口443)而不是http(端口80)。