title: Using mutable Before/After/Around in Specs2
body: <p>I am trying to run a mutable specs2 test with After and Around methods.
  I have the following:</p>
  
  <pre><code>import org.specs2.mutable.{Specification, Around, After}
  import org.specs2.specification.Scope
  import org.specs2.execute.{Result, AsResult}
  
  trait Foo extends After with Around {
  
    override def apply[T: AsResult](a: =&gt; T): Result = {
      lazy val result = super[Around].apply(a)
      super[After].apply(result)
    }
  
    override def after: Any = {
      println("after-method\n")
    }
  
    override def around[T: AsResult](t: =&gt; T) = {
      try {
        println("around-method\n")
        AsResult.effectively(t)
      } catch {
        case e: Throwable =&gt; {
          //preform some logic here
          throw e
        }
      }
    }
  }
  
  class Specs2Test extends Specification {
    "This test" should {
      "run with around and after" in new Context {
        true must_== true
      }
    }
  
    trait Context extends Scope with Foo
  
  }
  </code></pre>
  
  <p>When I execute the test, only the around method is executed. What am I doing wrong?</p>