title: How to run method after every NUnit test (even failure within teardown)
body: <p>I am working on a test library using NUnit, and am generating a custom report while the tests run.</p>
  
  <p>In the <code>TearDown</code> of my tests I call a method that will report the result of the test. It works just fine if the test passes, but is never reached if the test fails, is ignored, or inconclusive. </p>
  
  <p>To make things more difficult, the "//do stuff" in the <code>TearDown</code> can also cause the test to fail in which case it would still need to be logged. BUT <code>Assert</code> throws an exception which means it leaves the block and never reaches the reporting code.</p>
  
  <pre><code>[SetUp]
  public void ExampleSetup()
  {
      //whatever
  }
  
  [Test]
  public void ExampleTest()
  {
      //whatever
  }
  
  [TearDown]
  public void ExampleTearDown()
  {
      //do stuff
      someObject.ReportTestResult();
  }
  </code></pre>
  
  <p><strong>More Info</strong>
   - Using NUnit 3.2.0</p>