private MbUnit2AssemblyTest BuildAssemblyTest(Test parent, ICollection <KeyValuePair <Test, string> > unresolvedDependencies)
        {
            FixtureExplorer fixtureExplorer = InitializeFixtureExplorer(assembly);
            IAssemblyInfo   assemblyInfo    = Reflector.Wrap(assembly);

            MbUnit2AssemblyTest assemblyTest = new MbUnit2AssemblyTest(fixtureExplorer, assemblyInfo);

            PopulateAssemblyTestMetadata(assemblyTest, assemblyInfo);

            foreach (Fixture fixture in fixtureExplorer.FixtureGraph.Fixtures)
            {
                MbUnit2Test fixtureTest = CreateFixtureTest(fixture);

                foreach (RunPipeStarter starter in fixture.Starters)
                {
                    MbUnit2Test test = CreateTest(starter.Pipe);

                    fixtureTest.AddChild(test);
                }

                assemblyTest.AddChild(fixtureTest);
            }

            foreach (string assemblyName in fixtureExplorer.GetDependentAssemblies())
            {
                unresolvedDependencies.Add(new KeyValuePair <Test, string>(assemblyTest, assemblyName));
            }

            parent.AddChild(assemblyTest);
            return(assemblyTest);
        }
        private static FixtureExplorer InitializeFixtureExplorer(Assembly assembly)
        {
            FixtureExplorer fixtureExplorer = new FixtureExplorer(assembly);

            fixtureExplorer.Filter = new AnyFixtureFilter();
            fixtureExplorer.Explore();

            AnyRunPipeFilter runPipeFilter = new AnyRunPipeFilter();

            foreach (Fixture fixture in fixtureExplorer.FixtureGraph.Fixtures)
            {
                fixture.Load(runPipeFilter);
            }

            return(fixtureExplorer);
        }
        private static FixtureExplorer InitializeFixtureExplorer(Assembly assembly)
        {
            FixtureExplorer fixtureExplorer = new FixtureExplorer(assembly);
            fixtureExplorer.Filter = new AnyFixtureFilter();
            fixtureExplorer.Explore();

            AnyRunPipeFilter runPipeFilter = new AnyRunPipeFilter();
            foreach (Fixture fixture in fixtureExplorer.FixtureGraph.Fixtures)
                fixture.Load(runPipeFilter);

            return fixtureExplorer;
        }