csharpfritz / csharpfritz/WebFormsTest

Issue with AreaRegistration in Global.asax

Ouverte
#25 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement help wanted Low Priority
Langage dominant
JavaScript
Étoiles
26
Forks
14
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Are areas supported?

This line:

        AreaRegistration.RegisterAllAreas();

in

   protected void Application_Start(object sender, EventArgs e

of

global.asax.cs

results in the error below (slightly munged).

The test is

    [TestMethod]
    public void CanIgetMasterPage()
    {
        var sut = WebApplicationProxy.GetPageByLocation("~/MasterPages/Main.Master") as Main;

        Assert.IsNotNull(sut);


    }

and the base test class is

namespace xxx.yyy.WebFormsTestSpike
{

public class WebFormsTestBase
{

    protected readonly MockRepository _mockery;
    protected readonly Mock<HttpContextBase> contextMock;
    protected readonly Mock<HttpResponseBase> responseMock;
    protected readonly Mock<HttpRequestBase> requestMock;

    public WebFormsTestBase()
    {

        _mockery = new MockRepository(MockBehavior.Loose);

        contextMock = _mockery.Create<HttpContextBase>();

        responseMock = _mockery.Create<HttpResponseBase>();
        contextMock.SetupGet(c => c.Response).Returns(responseMock.Object);
        contextMock.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

        requestMock = _mockery.Create<HttpRequestBase>();
        contextMock.SetupGet(c => c.Request).Returns(requestMock.Object);

        InitializeWebApplicationProxy();
    }

    private void InitializeWebApplicationProxy()
    {
        Uri codeBase = new Uri(GetType().Assembly.CodeBase);
        var currentFolder = new DirectoryInfo(Path.GetDirectoryName(codeBase.LocalPath));
        var webFolder = currentFolder.Parent.Parent.Parent.GetDirectories("xxx.yyy.Web")[0];

        WebApplicationProxy.Create(webFolder.FullName, true);
    }
}

}

System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=This method cannot be called during the application's pre-start initialization phase.
Source=System.Web
StackTrace:
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Compilation.BuildManager.GetReferencedAssemblies()
at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetReferencedAssemblies()
at System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(IBuildManager buildManager, Predicate1 predicate) at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(String cacheName, Predicate1 predicate, IBuildManager buildManager)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas()
at xxx.yyy.Web.Global.Application_Start(Object sender, EventArgs e) in C:\zzz\Repos\MarketOnce2\Products\xxx\yyy\xxx.yyy.Web\Global.asax.cs:line 117
InnerException:

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans global.asax.cs, au niveau de Global.Application_Start, où AreaRegistration.RegisterAllAreas() déclenche l’exception. Lisez le test CanIgetMasterPage et la configuration de WebFormsTestBase.InitializeWebApplicationProxy, puis exécutez le test pour reproduire l’échec. Le travail est terminé lorsqu’il est établi si l’enregistrement des zones est pris en charge par ce harness et que le comportement observé est résolu ou clairement documenté.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp
Domaine
backend, testing
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.