Я пытаюсь создать класс модульного теста с использованием xUnit в моем проекте .Net Core 2.1 Razor Pages, и у меня, похоже, возникают проблемы при создании объекта AutoMapper IMapper
для передачи обратно методам, которые я хочу протестировать.
Вот упрощенная версия моего профиля AutoMapper в MainProject.csproj/AutoMapper/DomainProfile.cs
using AutoMapper;
using MainProject.Models;
using MainProject.Models.ViewModels;
namespace MainProject.AutoMapper
{
// Ref: https://dotnetcoretutorials.com/2017/09/23/using-automapper-asp-net-core/
// AutoMapper (called from Startup.cs) will search for any class that inherits from Profile
public class DomainProfile : Profile
{
public DomainProfile()
{
CreateMap<MyModel, MyViewModel>()
.ForMember(vm => vm.Property1, map => map.MapFrom(m => m.Property1))
.ForMember(vm => vm.Property2, map => map.MapFrom(m => m.Property2))
.ReverseMap();
}
}
}
Не уверен, если это имеет значение, но вот мой ConfigureServices
метод *1009*, где установка зависимостей для AutoMapper get:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options => { ... });
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>().AddEntityFrameworkStores<ApplicationDbContext>();
// AutoMapper
services.AddAutoMapper();
services.AddMvc()
.AddRazorPagesOptions(options => { ... })
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
Наконец, вот мой урезанный тестовый класс, который я пытался заставить работать, MainProject.Test.csproj/Services/MyModelServicesTest.cs
:
using System.Threading.Tasks;
using AutoMapper;
using Outreach.AutoMapper;
using Xunit;
...
...
namespace MainProject.Test.Services
{
public class MyModelServicesTest
{
[Fact]
public async Task MyUnitTestMethod()
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new DomainProfile());
});
var mapper = config.CreateMapper();
// myModelServices.SomeMethod(mapper);
// ... Other code that is never reached before the error throws
}
}
}
Когда код набирает cfg.AddProfile(new DomainProfile());
, он выдает эту ошибку:
System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'Microsoft.AspNetCore.Mvc.ViewFeatures, версия = 2.1.1.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60'. Система не может найти указанный файл.
Есть предложения?