protected override void DoTest(Lifetime lifetime, IProject testProject)
        {
            var name = testProject.GetSubItems()[0].Location.Name;

            var testAssembly = GetVirtualTestDataFilePath(name);

            var resolve = new AssemblyResolverOnFolders();

            resolve.AddPath(testAssembly.Directory);

            using (WriteLockCookie.Create())
            {
                PrepareBeforeRun(testProject);
            }

            var discoveryManager = Solution.GetComponent <IUnitTestDiscoveryManager>();
            var assemblyExplorer = Solution.GetComponent <MspecTestExplorerFromArtifacts>();

            var source = new UnitTestElementSource(UnitTestElementOrigin.Artifact,
                                                   new ExplorationTarget(
                                                       testProject,
                                                       GetTargetFrameworkId(),
                                                       new MspecTestProvider()));

            using (var transaction = discoveryManager.BeginTransaction(source))
            {
                assemblyExplorer.ProcessArtifact(transaction.Observer, lifetime).Wait(lifetime);

                DumpElements(transaction.Elements, name + ".metadata");
            }
        }
        protected void WithDiscovery(Action action)
        {
            var project  = Substitute.For <IProject>();
            var provider = Substitute.For <IUnitTestProvider>();

            var target = new ExplorationTarget(project, TargetFrameworkId.Default, provider);
            var source = new UnitTestElementSource(UnitTestElementOrigin.Source, target);

            using (DiscoveryContext.As(source))
            {
                action();
            }
        }
예제 #3
0
        private ICollection <IUnitTestElement> GetUnitTestElements(IProject testProject)
        {
            var provider = UT.Facade.ProviderCache.GetProviderByProviderId(MspecTestProvider.Id);

            var source = new UnitTestElementSource(UnitTestElementOrigin.Source,
                                                   new ExplorationTarget(
                                                       testProject,
                                                       GetTargetFrameworkId(),
                                                       provider));

            var discoveryManager = Solution.GetComponent <IUnitTestDiscoveryManager>();
            var metadataExplorer = Solution.GetComponent <MspecTestExplorerFromArtifacts>();

            using (var transaction = discoveryManager.BeginTransaction(source))
            {
                metadataExplorer.ProcessArtifact(transaction.Observer, CancellationToken.None).Wait();

                transaction.Commit();

                return(transaction.Elements);
            }
        }
예제 #4
0
        protected override void DoTest(Lifetime lifetime, IProject project)
        {
            var projectFile = project.GetSubItems().OfType <IProjectFile>().First();
            var file        = projectFile.GetPrimaryPsiFile();

            var discoveryManager = Solution.GetComponent <IUnitTestDiscoveryManager>();
            var fileExplorer     = Solution.GetComponent <MspecTestExplorerFromFile>();

            var source = new UnitTestElementSource(UnitTestElementOrigin.Source,
                                                   new ExplorationTarget(
                                                       project,
                                                       GetTargetFrameworkId(),
                                                       new MspecTestProvider()));

            using (var transaction = discoveryManager.BeginTransaction(source))
            {
                var observer = new TestElementObserverOnFile(transaction.Observer);

                fileExplorer.ProcessFile(file !, observer, InterruptableReadActivity.Empty);

                DumpElements(transaction.Elements, projectFile.Name + ".source");
            }
        }