title: Why can't "async void" unit tests be recognized?
body: <p><code>async void</code> unit tests cannot be run within Visual Studio 2012:</p>
  
  <pre><code>[TestClass]
  public class MyTestClass
  {
      [TestMethod]
      public async void InvisibleMyTestMethod()
      {
          await Task.Delay(1000);
          Assert.IsTrue(true);
      }
  }
  </code></pre>
  
  <p>If I want to have an asynchronous unit test, the test method has to return a Task:</p>
  
  <pre><code>[TestMethod]
  public async Task VisibleMyTestMethod()
  {
      await Task.Delay(1000);
      Assert.IsTrue(true);
  }
  </code></pre>
  
  <p>Why is it so? Not that I absolutely need to have an <code>async void</code> test method, I am just curious. Visual Studio 2012 gives no warning nor error when you build an <code>async void</code> test method even though it won't be able to be run...</p>