Пример #1
0
        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" );
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
 /// <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));
     }
 }
Пример #4
0
        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 );
            }
        }
Пример #5
0
        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;
        }
Пример #6
0
 // 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));
 }
Пример #7
0
        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单元测试加*/
        }