@@ -11,7 +11,7 @@ import org.specs2.control.Action
1111import  org .specs2 .fp .Tree .Node 
1212import  org .specs2 .fp .{Tree , TreeLoc }
1313import  org .specs2 .main .{Arguments , CommandLine , Select }
14- import  org .specs2 .specification .core .{Env , Fragment , SpecStructure }
14+ import  org .specs2 .specification .core .{Env , Fragment , SpecStructure ,  SpecificationStructure }
1515import  org .specs2 .specification .process .Stats 
1616
1717import  java .util 
@@ -48,14 +48,17 @@ class Specs2PrefixSuffixTestDiscoveringSuite(suite: Class[Any], runnerBuilder: R
4848
4949object  Specs2FilteringRunnerBuilder  {
5050  val  f :  FilteringRunnerBuilder  =  {
51-     case  (_ : org.specs2.runner.JUnitRunner , testClass : Class [_], pattern : Pattern ) => 
52-       new  FilteredSpecs2ClassRunner (testClass, pattern)
51+     case  (parentRunner : org.specs2.runner.JUnitRunner , testClass : Class [_], pattern : Pattern ) => 
52+       new  FilteredSpecs2ClassRunner (parentRunner,  testClass, pattern)
5353  }
5454}
5555
56- class  FilteredSpecs2ClassRunner (testClass : Class [_], testFilter : Pattern )
56+ class  FilteredSpecs2ClassRunner (parentRunner : org.specs2.runner. JUnitRunner ,  testClass : Class [_], testFilter : Pattern )
5757  extends  org.specs2.runner.JUnitRunner (testClass) {
5858
59+   // taking it from parent so not to initialize test classes multiple times
60+   override  lazy  val  specification :  SpecificationStructure  =  parentRunner.specification
61+ 
5962  override  def  getDescription (env : Env ):  Description  =  {
6063    try  createFilteredDescription(specStructure, env.specs2ExecutionEnv)
6164    catch  { case  NonFatal (t) =>  env.shutdown; throw  t; }
0 commit comments