Warum können Komponententests mit "asynchroner Leere" nicht erkannt werden?

async void Komponententests können nicht in Visual Studio 2012 ausgeführt werden:

[TestClass]
public class MyTestClass
{
    [TestMethod]
    public async void InvisibleMyTestMethod()
    {
        await Task.Delay(1000);
        Assert.IsTrue(true);
    }
}

Wenn ich einen asynchronen Komponententest haben möchte, muss die Testmethode einen Task zurückgeben:

[TestMethod]
public async Task VisibleMyTestMethod()
{
    await Task.Delay(1000);
    Assert.IsTrue(true);
}

Wieso ist es so? Nicht, dass ich unbedingt eine haben müssteasync void Testmethode, ich bin nur neugierig. Visual Studio 2012 gibt beim Erstellen einer keine Warnung oder Fehlermeldung ausasync void Testmethode, obwohl sie nicht ausgeführt werden kann ...

Antworten auf die Frage(3)

Ihre Antwort auf die Frage