Я пытаюсь использовать инструмент тестирования пакта. Но произошла ошибка. Папка журнала и файл журнала созданы, но папка pact и файл pact JSON не созданы в моем проекте. Я поделился своими кодами. Я использую пакет Pact. Windows 2.4.8 и asp. net core 2.2.0 на базе проекта тестирования xUnit
Это класс Mock
public class ConsumerApiMock : IDisposable
{
private readonly IPactBuilder _pactBuilder;
public IMockProviderService MockProviderService { get; }
private readonly int _port = 9222;
public string _baseUri => $"http://localhost:{_port}";
public ConsumerApiMock()
{
var config = new PactConfig
{
SpecificationVersion = "2.2.0",
PactDir = $@"..{Path.DirectorySeparatorChar}pacts",
LogDir = $@"..{Path.DirectorySeparatorChar}pact_logs"
};
_pactBuilder = new PactBuilder(config).ServiceConsumer("consumer").HasPactWith("producer");
MockProviderService = _pactBuilder.MockService(_port);
}
public void Dispose()
{
PactBuilder.Build();
}
}
Это тест xUnit Папка класса
public class ConsumerPactTest : IClassFixture<ConsumerApiMock>
{
private readonly IMockProviderService _mockProviderService;
private readonly string _baseUri;
public ConsumerPactTest(ConsumerApiMock mock)
{
_mockProviderService = mock.MockProviderService;
_mockProviderService.ClearInteractions();
_baseUri = mock._baseUri;
}
[Fact]
public async Task Given_Valid_TestCode_TestModel_Should_Be_Returned()
{
//ARRANGE
_mockProviderService
.Given("Test given")
.UponReceiving("Test upon")
.With(new ProviderServiceRequest
{
Method = HttpVerb.Get,
Path = "/api/test/"
})
.WillRespondWith(new ProviderServiceResponse
{
Status = 200,
Headers = new Dictionary<string, object>()
{
{ "Content-Type","application/json; charset=utf-8" }
},
Body = new
{
unitCode = "1234",
distance = "0"
}
});
}
}
pact_logs создается из целевого пути, но папка pacts не создает ее.