У меня есть модульный тест с AutoFixture, NSubstitute и xUnit.
Он проходит на локальной машине разработчика в VS, но не работает в TeamCity.
Тестовое задание:
[Theory, AutoNSubstituteData]
public async void GetList_StatusError_ShouldReturnBadRequest(
[Frozen] ICommentsService _commentsService,
[Frozen] IMerchantsService _merchantsService,
[Frozen] ICampaignsService _campaignsService)
{
// Arrange
var output = _fixture.Build<CommentsResult<CommentOutput>>()
.Without(w => w.Entity)
.With(x => x.Status, ServiceActionStatus.Error)
.Create();
_commentsService.List(Arg.Any<int>(), Arg.Any<string>()).Returns(output);
var controller = new CommentController(_commentsService, _merchantsService, _campaignsService);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
// Act
IHttpActionResult actionResult = await controller.GetList(null);
var contentResult = actionResult as BadRequestErrorMessageResult;
// Assert
contentResult.Should().NotBeNull();
contentResult.Message.Should().NotBeNullOrEmpty();
}
Ошибка TeamCity:
NSubstitute.Exceptions.AmbiguousArgumentsException:
Cannot determine argument specifications to use.
Please use specifications for all arguments of the same type. at NSubstitute.Core.Arguments.NonParamsArgumentSpecificationFactory.Create(Object argument, IParameterInfo parameterInfo, ISuppliedArgumentSpecifications suppliedArgumentSpecifications)
Комментарии Результат выглядит так:
public class CommentsResult<T> : IServiceResult<T>
{
public T Entity { get; set; }
public string Message { get; set; }
public Exception Exception { get; set; }
public ServiceActionStatus Status { get; set; }
}
Что может быть?