public static void AddVSProject( Form owner ) { TestLoader loader = Services.TestLoader; OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Add Visual Studio Project"; dlg.Filter = "All Project Types (*.csproj,*.vjsproj,*.vbproj,*.vcproj)|*.csproj;*.vjsproj;*.vbproj;*.vcproj|" + "C# Projects (*.csproj)|*.csproj|" + "J# Projects (*.vjsproj)|*.vjsproj|" + "VB Projects (*.vbproj)|*.vbproj|" + "C++ Projects (*.vcproj)|*.vcproj|" + "All Files (*.*)|*.*"; dlg.FilterIndex = 1; dlg.FileName = ""; if ( dlg.ShowDialog( owner ) == DialogResult.OK ) { try { VSProject vsProject = new VSProject( dlg.FileName ); loader.TestProject.Add( vsProject ); loader.LoadTest(); } catch( Exception ex ) { UserMessage.DisplayFailure( ex.Message, "Invalid VS Project" ); } } }
public void Add(VSProject vsProject) { foreach (VSProjectConfig vsConfig in vsProject.Configs) { string name = vsConfig.Name; if (!configs.Contains(name)) { configs.Add(name); } ProjectConfig config = this.Configs[name]; foreach (string assembly in vsConfig.Assemblies) { config.Assemblies.Add(assembly); } } }
/// <summary> /// Return a test project by either loading it from /// the supplied path, creating one from a VS file /// or wrapping an assembly. /// </summary> public static NUnitProject LoadProject(string path) { if (NUnitProject.IsProjectFile(path)) { NUnitProject project = new NUnitProject(path); project.Load(); return(project); } else if (VSProject.IsProjectFile(path)) { return(NUnitProject.FromVSProject(path)); } else if (VSProject.IsSolutionFile(path)) { return(NUnitProject.FromVSSolution(path)); } else { return(NUnitProject.FromAssembly(path)); } }
public void Add( VSProject vsProject ) { foreach( VSProjectConfig vsConfig in vsProject.Configs ) { string name = vsConfig.Name; if ( !configs.Contains( name ) ) configs.Add( name ); ProjectConfig config = this.Configs[name]; foreach ( string assembly in vsConfig.Assemblies ) config.Assemblies.Add( assembly ); } }
public static NUnitProject FromVSProject( string vsProjectPath ) { NUnitProject project = new NUnitProject( Path.GetFullPath( vsProjectPath ) ); VSProject vsProject = new VSProject( vsProjectPath ); project.Add( vsProject ); project.isDirty = false; return project; }
// True if it's ours or one we can load public static bool CanLoadAsProject(string path) { return(IsProjectFile(path) || VSProject.IsProjectFile(path) || VSProject.IsSolutionFile(path)); }
public static void AddToProject( Form owner, string configName ) { TestLoader loader = Services.TestLoader; ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Add Assemblies To Project"; dlg.InitialDirectory = config.BasePath; if ( VisualStudioSupport ) dlg.Filter = "Projects & Assemblies(*.csproj,*.vbproj,*.vjsproj, *.vcproj,*.dll,*.exe )|*.csproj;*.vjsproj;*.vbproj;*.vcproj;*.dll;*.exe|" + "Visual Studio Projects (*.csproj,*.vjsproj,*.vbproj,*.vcproj)|*.csproj;*.vjsproj;*.vbproj;*.vcproj|" + "C# Projects (*.csproj)|*.csproj|" + "J# Projects (*.vjsproj)|*.vjsproj|" + "VB Projects (*.vbproj)|*.vbproj|" + "C++ Projects (*.vcproj)|*.vcproj|" + "Assemblies (*.dll,*.exe)|*.dll;*.exe"; else dlg.Filter = "Assemblies (*.dll,*.exe)|*.dll;*.exe"; dlg.FilterIndex = 1; dlg.FileName = ""; if ( dlg.ShowDialog( owner ) != DialogResult.OK ) return; if ( PathUtils.IsAssemblyFileType( dlg.FileName ) ) config.Assemblies.Add( dlg.FileName ); else if ( VSProject.IsProjectFile( dlg.FileName ) ) try { VSProject vsProject = new VSProject( dlg.FileName ); MessageBoxButtons buttons; string msg; if ( configName != null && vsProject.Configs.Contains( configName ) ) { msg = "The project being added may contain multiple configurations;\r\r" + "Select\tYes to add all configurations found.\r" + "\tNo to add only the " + configName + " configuration.\r" + "\tCancel to exit without modifying the project."; buttons = MessageBoxButtons.YesNoCancel; } else { msg = "The project being added may contain multiple configurations;\r\r" + "Select\tOK to add all configurations found.\r" + "\tCancel to exit without modifying the project."; buttons = MessageBoxButtons.OKCancel; } DialogResult result = UserMessage.Ask( msg, buttons ); if ( result == DialogResult.Yes || result == DialogResult.OK ) { loader.TestProject.Add( vsProject ); if ( loader.IsTestLoaded ) loader.ReloadTest(); else loader.LoadTest(); } else if ( result == DialogResult.No ) { foreach( string assembly in vsProject.Configs[configName].Assemblies ) config.Assemblies.Add( assembly ); } } catch( Exception ex ) { UserMessage.DisplayFailure( ex.Message, "Invalid VS Project" ); } }
public void AddVSProject() { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Add Visual Studio Project"; dlg.Filter = "All Project Types (*.csproj,*.vjsproj,*.vbproj,*.vcproj)|*.csproj;*.vjsproj;*.vbproj;*.vcproj|" + "C# Projects (*.csproj)|*.csproj|" + "J# Projects (*.vjsproj)|*.vjsproj|" + "VB Projects (*.vbproj)|*.vbproj|" + "C++ Projects (*.vcproj)|*.vcproj|" + "All Files (*.*)|*.*"; dlg.FilterIndex = 1; dlg.FileName = ""; if ( dlg.ShowDialog( Form ) == DialogResult.OK ) { try { VSProject vsProject = new VSProject( dlg.FileName ); loader.TestProject.Add( vsProject ); } catch( Exception ex ) { Form.MessageDisplay.Error("Invalid VS Project", ex); } } }
public void AddVSProject() { try { /*2012-12-单元测试加*/ if (loader == null) return; if (loader.TestProject == null) return; /*2012-12-单元测试加*/ OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Add Visual Studio Project"; dlg.Filter = "All Project Types (*.csproj,*.vjsproj,*.vbproj,*.vcproj)|*.csproj;*.vjsproj;*.vbproj;*.vcproj|" + "C# Projects (*.csproj)|*.csproj|" + "J# Projects (*.vjsproj)|*.vjsproj|" + "VB Projects (*.vbproj)|*.vbproj|" + "C++ Projects (*.vcproj)|*.vcproj|" + "All Files (*.*)|*.*"; dlg.FilterIndex = 1; dlg.FileName = ""; if (dlg.ShowDialog(Form) == DialogResult.OK) { VSProject vsProject = new VSProject(dlg.FileName); loader.TestProject.Add(vsProject); } } /*2012-12-29单元测试加*/ catch (CADException exception) { if (Form != null) Form.MessageDisplay.Error("Invalid VS Project", exception); else CADApplication.ShowAlertDialog("Invalid VS Project\n" + exception.Message); } catch (SystemException exception) { if (Form != null) Form.MessageDisplay.Error("Invalid VS Project", exception); else CADApplication.ShowAlertDialog("Invalid VS Project\n" + exception.Message); } /*2012-12-29单元测试加*/ }
// TODO: Not used? public void AddToProject(string configName) { try { /*2012-12-25单元测试改*/ if (loader == null) return; if (loader.TestProject == null) return; if (loader.TestProject.Configs == null) return; /*2012-12-25单元测试改*/ ProjectConfig config = configName == null ? loader.TestProject.ActiveConfig : loader.TestProject.Configs[configName]; /*2012-12-25单元测试改*/ if (config == null) return; if (config.Assemblies == null) return; /*2012-12-25单元测试改*/ OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Add Assemblies To Project"; dlg.InitialDirectory = config.BasePath; if (VisualStudioSupport) dlg.Filter = "Projects & Assemblies(*.csproj,*.vbproj,*.vjsproj, *.vcproj,*.dll,*.exe )|*.csproj;*.vjsproj;*.vbproj;*.vcproj;*.dll;*.exe|" + "Visual Studio Projects (*.csproj,*.vjsproj,*.vbproj,*.vcproj)|*.csproj;*.vjsproj;*.vbproj;*.vcproj|" + "C# Projects (*.csproj)|*.csproj|" + "J# Projects (*.vjsproj)|*.vjsproj|" + "VB Projects (*.vbproj)|*.vbproj|" + "C++ Projects (*.vcproj)|*.vcproj|" + "Assemblies (*.dll,*.exe)|*.dll;*.exe"; else dlg.Filter = "Assemblies (*.dll,*.exe)|*.dll;*.exe"; dlg.FilterIndex = 1; dlg.FileName = ""; if (dlg.ShowDialog(Form) != DialogResult.OK) return; if (PathUtils.IsAssemblyFileType(dlg.FileName)) { config.Assemblies.Add(dlg.FileName); return; } else if (VSProject.IsProjectFile(dlg.FileName)) { VSProject vsProject = new VSProject(dlg.FileName); MessageBoxButtons buttons; string msg; if (configName != null && vsProject.Configs.Contains(configName)) { msg = "The project being added may contain multiple configurations;\r\r" + "Select\tYes to add all configurations found.\r" + "\tNo to add only the " + configName + " configuration.\r" + "\tCancel to exit without modifying the project."; buttons = MessageBoxButtons.YesNoCancel; } else { msg = "The project being added may contain multiple configurations;\r\r" + "Select\tOK to add all configurations found.\r" + "\tCancel to exit without modifying the project."; buttons = MessageBoxButtons.OKCancel; } DialogResult result = Form.MessageDisplay.Ask(msg, buttons); if (result == DialogResult.Yes || result == DialogResult.OK) { loader.TestProject.Add(vsProject); return; } else if (result == DialogResult.No) { /*2012-12-26单元测试加*/ if (vsProject == null) return; if (vsProject.Configs == null) return; VSProjectConfig vsConfig = vsProject.Configs[configName]; if (vsConfig == null) return; if (vsConfig.Assemblies == null) return; /*2012-12-26单元测试加*/ foreach (string assembly in /*vsProject.Configs[configName].Assemblies*/vsConfig.Assemblies)//2012-12-26单元测试改 config.Assemblies.Add(assembly); return; } } } /*2012-12-29单元测试加*/ catch (CADException exception) { if (Form != null) Form.MessageDisplay.Error("Invalid VS Project", exception); else CADApplication.ShowAlertDialog("Invalid VS Project\n" + exception.Message); } catch (SystemException exception) { if (Form != null) Form.MessageDisplay.Error("Invalid VS Project", exception); else CADApplication.ShowAlertDialog("Invalid VS Project\n" + exception.Message); } /*2012-12-29单元测试加*/ }