Как запустить два проекта, вызывающих друг друга при тестировании? - PullRequest
2 голосов
/ 16 мая 2019

У меня проблема с тестированием моих разных конечных точек API. Конечная точка, которую я тестирую, использует мой второй API. Поэтому конечная точка, которую я тестирую, зависит от моего другого сервиса, который должен быть запущен. Когда я нажимаю «Запустить все тесты в Visual Studio», служба, на которую опирается мой тест, перестает работать.

Я попытался запустить службу, на которую опирается моя конечная точка, и запустить «Выполнить выбранные тесты». Кажется, это работает.

Это следующий тест, который я пытаюсь сделать:

[Theory]
[MemberData(nameof(TestDataGenerator.GetCreateAnswerCommandsFromDataGenerator),
 MemberType = typeof(TestDataGenerator))]
public async void CreateNewAnswer_ReturnsBadRequest(CreateAnswerCommand a,
                                                    CreateAnswerCommand b, 
                                                    CreateAnswerCommand c )
{
    Assert.True(await IsBadRequest(a));
    Assert.True(await IsBadRequest(b));
    Assert.True(await IsBadRequest(c));
}
public class CreateAnswerCommandValidator : AbstractValidator<CreateAnswerCommand>
{
    private readonly IUserServiceClient _client;

    public CreateAnswerCommandValidator(IUserServiceClient client)
    {
        _client = client;

        RuleFor(x => x.TextTranslated).NotEmpty().NotNull();
        RuleFor(x => x.RequestId).NotEmpty().NotNull();
        RuleFor(x => x.UserId).MustAsync(IdExists).WithMessage("ID must be registered");
    }

    private async Task<bool> IdExists(Guid arg1, CancellationToken arg2)
    {
        bool exists = await _client.CheckUserId(arg1);
        return exists;
    }

CreateNewAnswerCommand имеет от MustAsyns до FluentValidation, который вызывает my UserService и проверяет, существует ли UserId.

Я хочу, чтобы два тестовых проекта начинали вращаться, а затем закрывались, когда я нажимал Run All Tests.

1 Ответ

0 голосов
/ 16 мая 2019

Если у вас есть два проекта в одном решении, щелкните правой кнопкой мыши первый проект, затем выберите «Отладка» и затем запустите новый экземпляр. Наконец, запустите тесты для другого проекта

...