У меня очень простой тест в тестовом проекте в решении с использованием ASP MVC V5 и маршрутизации атрибутов. Маршрутизация атрибутов и метод MapMvcAttributeRoutes
являются частью ASP MVC 5.
[Test]
public void HasRoutesInTable()
{
var routes = new RouteCollection();
routes.MapMvcAttributeRoutes();
Assert.That(routes.Count, Is.GreaterThan(0));
}
Это приводит к:
System.InvalidOperationException :
This method cannot be called during the applications pre-start initialization phase.
Большинство ответов на это сообщение об ошибке включают настройку поставщиков членства в файле web.config
. Этот проект не имеет ни поставщиков членства, ни файла web.config
, поэтому ошибка, по-видимому, происходит по какой-то другой причине. Как переместить код из этого состояния "перед запуском", чтобы тесты могли выполняться?
Эквивалентный код атрибутов на ApiController
отлично работает после вызова HttpConfiguration.EnsureInitialized()
.