$src = [system.io.path]::combine([system.environment]::getfolderpath([system.environment+specialfolder]::programfiles), "PowerGUI"); $bin = $src; $core = $src + "\Quest.PowerGUI.Engine.Core.dll"; get-childitem ( $bin +"\*.dll" ) | foreach { [reflection.assembly]::LoadFrom($_.FullName) }; [reflection.assembly]::LoadFrom($core); $test = New-Object PowerGUITestLib.Tester; $init = { $settings = New-Object Quest.PowerGUI.XMLSettingsManager; [void]$settings.Load(); $Logger = $settigs.Logger; $factory = [Quest.PowerGUI.HostFactory]::Create($settings); [system.windows.forms.application]::run($factory.MainHost); }; $init_completed = { while($true) { $exist = $false; [system.windows.forms.application]::OpenForms | foreach { if($_.Name -eq "MainForm") { $exist=$true; break; } } if($exist) { break; } } [quest.powergui.hostfactory]::current.mainhost.activate(); [quest.powergui.hostfactory]::current.mainhost.bringtofront(); [quest.powergui.hostfactory]::current.mainhost.Shell.Dispatcher.add_Message( { #[console]::writeline("Shell status: " + $_.Status.ToString()); if ($_.Status -eq [Quest.PowerGUI.Engine.Shell.EngineStatusEnum]::Error) { [console]::writeline("`n-----------------ERROR-------------------"); if ($_.data -ne $null) { [console]::write("ERROR on node: "); [console]::writeline($_.Data.get_item([quest.powergui.hostparteventargs]::nodekey).FullPath); if ( $_.data.ContainsKey([quest.powergui.Engine.Shell.EnginePartEventArgs]::ScriptKey) ) { [console]::writeline("Script : " + $_.Data.get_item([quest.powergui.Engine.Shell.EnginePartEventArgs]::ScriptKey)); } else { [console]::writeline("No script"); } if ( $_.data.ContainsKey([quest.powergui.Engine.Shell.EnginePartEventArgs]::ErrorKey) ) { [console]::writeline($_.Data.get_item([quest.powergui.Engine.Shell.EnginePartEventArgs]::ErrorKey)); } else { [console]::writeline("No error description"); [console]::writeline("Data keys : " + [powerguitestlib.tester]::Variables.Keys); } } else { [console]::writeline("No data for engine status = " + $_.Status); } [console]::writeline("`n-----------------END_ERROR-------------------"); } }); [quest.powergui.hostfactory]::current.mainhost.add_deactivate( { if($this.CanFocus -eq $false) { [PowerGUITestLib.Tester]::CloseMessageBox($this.Handle); } }); }; $test.add_Init($init); $test.add_Test($init_completed); "`nLoad tests..." foreach($file in (get-childitem ($src + "\Scripts\*.ps1"))) { "Add test - " + $file.Name $sc = $executioncontext.InvokeCommand.NewScriptBlock((get-content $file.FullName)); $test.add_Test($sc); } "`nRun tests..." $test.Start([System.Threading.ApartmentState]::STA);