public override ICollection Load(string location, ProjectData projectData, IWarningHandler warningHandler) { // Skip loading if the extension is not fully initalized unless we are not // running in Visual Studio (because we are running in MSTest instead). if (!TipShellExtension.IsInitialized && ShellEnvironment.IsRunningInVisualStudio) { return(EmptyArray <TestElement> .Instance); } // Explore the tests. ITestFrameworkManager testFrameworkManager = RuntimeAccessor.ServiceLocator.Resolve <ITestFrameworkManager>(); WarningLogger logger = new WarningLogger(warningHandler); ReflectionOnlyAssemblyLoader loader = new ReflectionOnlyAssemblyLoader(); loader.AddHintDirectory(Path.GetDirectoryName(location)); IAssemblyInfo assembly = loader.ReflectionPolicy.LoadAssemblyFrom(location); var testFrameworkSelector = new TestFrameworkSelector() { Filter = testFrameworkHandle => testFrameworkHandle.Id != "MSTestAdapter.TestFramework", FallbackMode = TestFrameworkFallbackMode.Approximate }; ITestDriver driver = testFrameworkManager.GetTestDriver(testFrameworkSelector, logger); TestExplorationOptions testExplorationOptions = new TestExplorationOptions(); ArrayList tests = new ArrayList(); MessageConsumer messageConsumer = new MessageConsumer() .Handle <TestDiscoveredMessage>(message => { if (message.Test.IsTestCase) { tests.Add(GallioTestElementFactory.CreateTestElement(message.Test, location, projectData)); } }) .Handle <AnnotationDiscoveredMessage>(message => { message.Annotation.Log(logger, true); }); driver.Describe(loader.ReflectionPolicy, new ICodeElementInfo[] { assembly }, testExplorationOptions, messageConsumer, NullProgressMonitor.CreateInstance()); return(tests); }
/// <summary> /// Loads elements from specified location into memory /// /// This method uses exceptions for error conditions -- Not return values. /// </summary> /// <param name="assemblyFileLocation">Location to load tests from.</param> /// <param name="projectData">Project information object.</param> /// <param name="warningHandler">Warning handler that processes warnings.</param> /// <returns>The data that has been loaded</returns> public override ICollection Load(string assemblyFileLocation, ProjectData projectData, IWarningHandler warningHandler) { Guard.StringNotNullOrEmpty(assemblyFileLocation, "location"); IExecutorWrapper executor = null; try { // The ExecutorWrapper is the xUnit's version-resilient layer for communicating with different // versions of the main xunit.dll. The XUnitVSRunner is thus ignorant about that module and will // try to communicate and use whatever version is actually referenced in the unit test's assembly. executor = new ExecutorWrapper(assemblyFileLocation, configFilename: null, shadowCopy: true); } catch (ArgumentException ex) { Trace.WriteLine("No xUnit tests found in '" + assemblyFileLocation + "':"); Trace.WriteLine(ex); } #if DEBUG catch (Exception ex) { Trace.TraceError("Error at XUnitTestTip.Load: " + ex.Message); throw; } #endif var tests = new List<ITestElement>(); // Collection of tests loaded from disk if (executor == null) return tests; using (executor) { var testAssembly = TestAssemblyBuilder.Build(executor); // the magic is in this two-liner: we ask the xUnit to find all tests and then // with heavy use of Reflection we create the actual internal Microsoft's UnitTestElements // that will contain all required information about the test's location foreach (var xmethod in testAssembly.EnumerateTestMethods()) tests.Add(MSVST4U_Access.New_MSVST4U_UnitTestElement( assemblyFileLocation, xmethod.TestClass.TypeName, xmethod.MethodName, projectData)); } return tests; }
public override ICollection Load(string location, ProjectData projectData, IWarningHandler warningHandler) { // Skip loading if the extension is not fully initalized unless we are not // running in Visual Studio (because we are running in MSTest instead). if (!TipShellExtension.IsInitialized && ShellEnvironment.IsRunningInVisualStudio) return EmptyArray<TestElement>.Instance; // Explore the tests. ITestFrameworkManager testFrameworkManager = RuntimeAccessor.ServiceLocator.Resolve<ITestFrameworkManager>(); WarningLogger logger = new WarningLogger(warningHandler); ReflectionOnlyAssemblyLoader loader = new ReflectionOnlyAssemblyLoader(); loader.AddHintDirectory(Path.GetDirectoryName(location)); IAssemblyInfo assembly = loader.ReflectionPolicy.LoadAssemblyFrom(location); var testFrameworkSelector = new TestFrameworkSelector() { Filter = testFrameworkHandle => testFrameworkHandle.Id != "MSTestAdapter.TestFramework", FallbackMode = TestFrameworkFallbackMode.Approximate }; ITestDriver driver = testFrameworkManager.GetTestDriver(testFrameworkSelector, logger); TestExplorationOptions testExplorationOptions = new TestExplorationOptions(); ArrayList tests = new ArrayList(); MessageConsumer messageConsumer = new MessageConsumer() .Handle<TestDiscoveredMessage>(message => { if (message.Test.IsTestCase) tests.Add(GallioTestElementFactory.CreateTestElement(message.Test, location, projectData)); }) .Handle<AnnotationDiscoveredMessage>(message => { message.Annotation.Log(logger, true); }); driver.Describe(loader.ReflectionPolicy, new ICodeElementInfo[] { assembly }, testExplorationOptions, messageConsumer, NullProgressMonitor.CreateInstance()); return tests; }
public CoreService() { _warningHandler = new WarningHandler(); _shotHandler = new ShotHandler(); }
public void Unload(string location, IWarningHandler warningHandler) { target.Unload(location, warningHandler); }
public ICollection Load(string location, ProjectData projectData, IWarningHandler warningHandler) { return target.Load(location, projectData, warningHandler); }
public WarningLogger(IWarningHandler warningHandler) { this.warningHandler = warningHandler; }
public WarningLogger(IWarningHandler warningHandler) { this.warningHandler = warningHandler; }
public MainWindow() { InitializeComponent(); _mapView = MapViewPanel.Instance; _settingsManager = new SettingsManager(); _windowMenuManager = new WindowMenuManager(showMenu, miHelp); loadDefaults(); Palette.UFOBattle.SetTransparent(true); Palette.TFTDBattle.SetTransparent(true); Palette.UFOBattle.Grayscale.SetTransparent(true); Palette.TFTDBattle.Grayscale.SetTransparent(true); #region Setup SharedSpace information and paths var sharedSpace = SharedSpace.Instance; var consoleSharedSpace = new ConsoleSharedSpace(sharedSpace); _warningHandler = new ConsoleWarningHandler(consoleSharedSpace); MainWindowsManager.MainToolStripButtonsFactory = new MainToolStripButtonsFactory(_mapView); _mainWindowsManager = new MainWindowsManager(); _mainWindowWindowsManager = new MainWindowWindowsManager( _settingsManager, consoleSharedSpace); var settings = GetSettings(); _windowMenuManager.SetMenus(consoleSharedSpace.GetNewConsole(), settings); MainWindowsManager.MainWindowsShowAllManager = _windowMenuManager.CreateShowAll(); MainWindowsManager.Initialize(); sharedSpace.GetObj("MapView", this); sharedSpace.GetObj("AppDir", Environment.CurrentDirectory); sharedSpace.GetObj("CustomDir", Environment.CurrentDirectory + "/custom"); sharedSpace.GetObj("SettingsDir", Environment.CurrentDirectory + "/settings"); var pathsFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "Paths", "pth"); var settingsFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "MVSettings", "dat"); var mapeditFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "MapEdit", "dat"); var imagesFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "Images", "dat"); sharedSpace.GetObj("MV_PathsFile", pathsFile); sharedSpace.GetObj(SettingsService.FILE_NAME, settingsFile); sharedSpace.GetObj("MV_MapEditFile", mapeditFile); sharedSpace.GetObj("MV_ImagesFile", imagesFile); #endregion if (!pathsFile.Exists()) { InstallWindow iw = new InstallWindow(); if (iw.ShowDialog(this) != DialogResult.OK) { Environment.Exit(-1); } } GameInfo.ParseLine += parseLine; InitGameInfo(pathsFile); LogFile.Instance.WriteLine("GameInfo.Init done"); _mainWindowWindowsManager.Register(); MainWindowsManager.TileView.TileViewControl.MapChanged += TileView_MapChanged; LogFile.Instance.WriteLine("Palette transparencies set"); MapViewPanel.ImageUpdate += new EventHandler(update); _mapView.Dock = DockStyle.Fill; instance = this; mapList.TreeViewNodeSorter = new System.Collections.CaseInsensitiveComparer(); toolStripContainer1.ContentPanel.Controls.Add(_mapView); MainWindowsManager.MainToolStripButtonsFactory.MakeToolstrip(toolStrip); toolStrip.Enabled = false; toolStrip.Items.Add(new ToolStripSeparator()); LogFile.Instance.WriteLine("Main view window created"); LogFile.Instance.WriteLine("Default settings loaded"); try { _mapView.MapView.CursorSprite = new CursorSprite(GameInfo.CachePck( SharedSpace.Instance.GetString("cursorFile"), "", 2, Palette.UFOBattle)); } catch { try { _mapView.MapView.CursorSprite = new CursorSprite(GameInfo.CachePck( SharedSpace.Instance.GetString("cursorFile"), "", 4, Palette.TFTDBattle)); } catch { _mapView.Cursor = null; } } LogFile.Instance.WriteLine("Cursor loaded"); initList(); LogFile.Instance.WriteLine("Map list created"); LogFile.Instance.WriteLine("Quick help and About created"); if (settingsFile.Exists()) { _settingsManager.Load(settingsFile.ToString()); LogFile.Instance.WriteLine("User settings loaded"); } else { LogFile.Instance.WriteLine("User settings NOT loaded - no settings file to load"); } OnResize(null); this.Closing += new CancelEventHandler(closing); _lf = new LoadingForm(); Bmp.LoadingEvent += _lf.Update; // I should rewrite the hq2x wrapper for .NET sometime -- not the code it's pretty insane // if (!File.Exists("hq2xa.dll")) miHq.Visible = false; // LogFile.Instance.WriteLine("Loading user-made plugins"); /****************************************/ // Copied from PckView // loadedTypes = new LoadOfType<IMapDesc>(); // sharedSpace["MapMods"] = loadedTypes.AllLoaded; // There are no currently loadable maps in this assembly so this is more for future use // loadedTypes.LoadFrom(Assembly.GetAssembly(typeof(XCom.Interfaces.Base.IMapDesc))); // if (Directory.Exists(sharedSpace["CustomDir"].ToString())) // { // xConsole.AddLine("Custom directory exists: " + sharedSpace["CustomDir"].ToString()); // foreach (string s in Directory.GetFiles(sharedSpace["CustomDir"].ToString())) // if (s.EndsWith(".dll")) // { // xConsole.AddLine("Loading dll: " + s); // loadedTypes.LoadFrom(Assembly.LoadFrom(s)); // } // } /****************************************/ LogFile.Instance.WriteLine("About to show window"); Show(); LogFile.Instance.Close(); // TODO: Keep logfile open until the program closes. }
public void Unload(string location, IWarningHandler warningHandler) { target.Unload(location, warningHandler); }
public ICollection Load(string location, ProjectData projectData, IWarningHandler warningHandler) { return(target.Load(location, projectData, warningHandler)); }