protected virtual void StartDynamo(IPreferences settings = null) { var assemblyPath = Assembly.GetExecutingAssembly().Location; preloader = new Preloader(Path.GetDirectoryName(assemblyPath)); preloader.Preload(); var preloadedLibraries = new List <string>(); GetLibrariesToPreload(preloadedLibraries); if (preloadedLibraries.Any()) { // Only when any library needs preloading will a path resolver be // created, otherwise DynamoModel gets created without preloading // any library. // var pathResolverParams = new TestPathResolverParams() { UserDataRootFolder = GetUserUserDataRootFolder(), CommonDataRootFolder = GetCommonDataRootFolder() }; pathResolver = new TestPathResolver(pathResolverParams); foreach (var preloadedLibrary in preloadedLibraries.Distinct()) { pathResolver.AddPreloadLibraryPath(preloadedLibrary); } } this.CurrentDynamoModel = DynamoModel.Start(CreateStartConfiguration(settings)); }
protected void StartDynamo() { var assemblyPath = Assembly.GetExecutingAssembly().Location; preloader = new Preloader(Path.GetDirectoryName(assemblyPath)); preloader.Preload(); TestPathResolver pathResolver = null; var preloadedLibraries = new List <string>(); GetLibrariesToPreload(preloadedLibraries); if (preloadedLibraries.Any()) { // Only when any library needs preloading will a path resolver be // created, otherwise DynamoModel gets created without preloading // any library. // var pathResolverParams = new TestPathResolverParams() { UserDataRootFolder = GetUserUserDataRootFolder(), CommonDataRootFolder = GetCommonDataRootFolder() }; pathResolver = new TestPathResolver(pathResolverParams); foreach (var preloadedLibrary in preloadedLibraries.Distinct()) { pathResolver.AddPreloadLibraryPath(preloadedLibrary); } } var model = DynamoModel.Start( new DynamoModel.DefaultStartConfiguration() { PathResolver = pathResolver, StartInTestMode = true, GeometryFactoryPath = preloader.GeometryFactoryPath, ProcessMode = TaskProcessMode.Synchronous }); var watch3DViewParams = new Watch3DViewModelStartupParams(model); this.ViewModel = DynamoViewModel.Start( new DynamoViewModel.StartConfiguration() { DynamoModel = model, Watch3DViewModel = new DefaultWatch3DViewModel(null, watch3DViewParams) }); Assert.AreEqual(ViewModel.Model.State, DynamoModel.DynamoModelState.StartedUIless); this.ViewModel.RequestUserSaveWorkflow += RequestUserSaveWorkflow; }
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); } }
internal RevitTestPathResolver(TestPathResolverParams resolverParams) : base(resolverParams) { //Set UserDataBootFolder & CommonDataRootFolder to PathResolver. }