csharpfritz / csharpfritz/WebFormsTest

Issue with AreaRegistration in Global.asax

Offen
#25 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement help wanted Low Priority
Vorherrschende Sprache
JavaScript
Sterne
26
Forks
14
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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 contextMock;
protected readonly Mock responseMock;
protected readonly Mock requestMock;

public WebFormsTestBase()
{

_mockery = new MockRepository(MockBehavior.Loose);

contextMock = _mockery.Create();

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

requestMock = _mockery.Create();
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, Predicate`1 predicate)
at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(String cacheName, Predicate`1 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:

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start in global.asax.cs at Global.Application_Start, where AreaRegistration.RegisterAllAreas() raises the exception. Read the CanIgetMasterPage test and WebFormsTestBase.InitializeWebApplicationProxy setup, then run the test to reproduce the failure. Done means establishing whether area registration is supported by this harness and resolving or clearly documenting the observed behavior.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
backend, testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.