Exemplo n.º 1
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            try
            {
                UpdateSystemPathForProcess();

                // create the transaction manager object
                TransactionManager.SetupManager(new AutomaticTransactionStrategy());

                // Note that there is another data member pathResolver in base class
                // SystemTestBase. That pathResolver will be used only in StartDynamo
                // of the base class, here a local instance of pathResolver is used.
                //
                var revitTestPathResolver = new RevitTestPathResolver();
                revitTestPathResolver.InitializePreloadedLibraries();

                DynamoRevit.RevitDynamoModel = RevitDynamoModel.Start(
                    new RevitDynamoModel.RevitStartConfiguration()
                {
                    StartInTestMode       = true,
                    GeometryFactoryPath   = DynamoRevit.GetGeometryFactoryPath(testConfig.DynamoCorePath),
                    DynamoCorePath        = testConfig.DynamoCorePath,
                    PathResolver          = revitTestPathResolver,
                    Context               = "Revit 2014",
                    SchedulerThread       = new TestSchedulerThread(),
                    PackageManagerAddress = "https://www.dynamopackages.com",
                    ExternalCommandData   = new DynamoRevitCommandData(RevitTestExecutive.CommandData),
                    ProcessMode           = RevitTaskProcessMode
                });

                Model = DynamoRevit.RevitDynamoModel;

                this.ViewModel = DynamoRevitViewModel.Start(
                    new DynamoViewModel.StartConfiguration()
                {
                    DynamoModel = DynamoRevit.RevitDynamoModel,
                });

                var vm3D = ViewModel.Watch3DViewModels.FirstOrDefault(vm => vm is RevitWatch3DViewModel);
                if (vm3D != null)
                {
                    vm3D.Active = false;
                }

                // Because the test framework does not work in the idle thread.
                // We need to trick Dynamo into believing that it's in the idle
                // thread already.
                IdlePromise.InIdleThread = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }
Exemplo n.º 2
0
        protected override void StartDynamo(TestSessionConfiguration testConfig)
        {
            try
            {
                UpdateSystemPathForProcess();

                // create the transaction manager object
                TransactionManager.SetupManager(new AutomaticTransactionStrategy());

                // Note that there is another data member pathResolver in base class
                // SystemTestBase. That pathResolver will be used only in StartDynamo
                // of the base class, here a local instance of pathResolver is used.
                //
                var commandData    = new DynamoRevitCommandData(RevitTestExecutive.CommandData);
                var userDataFolder = Path.Combine(Environment.GetFolderPath(
                                                      Environment.SpecialFolder.ApplicationData),
                                                  "Dynamo", "Dynamo Revit");
                var commonDataFolder = Path.Combine(Environment.GetFolderPath(
                                                        Environment.SpecialFolder.CommonApplicationData),
                                                    "Autodesk", "RVT " + commandData.Application.Application.VersionNumber, "Dynamo");

                // Set Path Resolver's user data folder and common data folder with DynamoRevit runtime.
                var pathResolverParams = new TestPathResolverParams()
                {
                    UserDataRootFolder   = userDataFolder,
                    CommonDataRootFolder = commonDataFolder
                };
                RevitTestPathResolver revitTestPathResolver = new RevitTestPathResolver(pathResolverParams);
                revitTestPathResolver.InitializePreloadedLibraries();

                // Get the preloaded DynamoRevit Custom Nodes, and Add them to Preload Libraries.
                var preloadedLibraries = new List <string>();
                GetLibrariesToPreload(preloadedLibraries);
                if (preloadedLibraries.Any())
                {
                    foreach (var preloadedLibrary in preloadedLibraries)
                    {
                        if (Directory.Exists(preloadedLibrary))
                        {
                            revitTestPathResolver.AddNodeDirectory(preloadedLibrary);
                        }
                        else if (File.Exists(preloadedLibrary))
                        {
                            revitTestPathResolver.AddPreloadLibraryPath(preloadedLibrary);
                        }
                    }
                }

                // Init DynamoTestPath to get DynamoSettings.xml which under user data folder
                PreferenceSettings.DynamoTestPath = string.Empty;
                //preload ASM and instruct dynamo to load that version of libG.
                var requestedLibGVersion = DynamoRevit.PreloadAsmFromRevit();

                DynamoRevit.RevitDynamoModel = RevitDynamoModel.Start(
                    new RevitDynamoModel.RevitStartConfiguration()
                {
                    StartInTestMode       = true,
                    GeometryFactoryPath   = DynamoRevit.GetGeometryFactoryPath(testConfig.DynamoCorePath, requestedLibGVersion),
                    DynamoCorePath        = testConfig.DynamoCorePath,
                    PathResolver          = revitTestPathResolver,
                    Context               = DynamoRevit.GetRevitContext(commandData),
                    SchedulerThread       = new TestSchedulerThread(),
                    PackageManagerAddress = "https://www.dynamopackages.com",
                    ExternalCommandData   = commandData,
                    ProcessMode           = RevitTaskProcessMode
                });

                Model = DynamoRevit.RevitDynamoModel;

                this.ViewModel = DynamoRevitViewModel.Start(
                    new DynamoViewModel.StartConfiguration()
                {
                    DynamoModel = DynamoRevit.RevitDynamoModel,
                });

                var vm3D = ViewModel.Watch3DViewModels.FirstOrDefault(vm => vm is RevitWatch3DViewModel);
                if (vm3D != null)
                {
                    vm3D.Active = false;
                }

                // Because the test framework does not work in the idle thread.
                // We need to trick Dynamo into believing that it's in the idle
                // thread already.
                IdlePromise.InIdleThread = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }