Папка PactDir не создана из Pact in. net core 2.2 - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь использовать инструмент тестирования пакта. Но произошла ошибка. Папка журнала и файл журнала созданы, но папка 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 не создает ее.

...