📄 nunitform.cs
字号:
#region Copyright (c) 2002-2003, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole, Philip A. Craig
/************************************************************************************
'
' Copyright 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
' Copyright 2000-2002 Philip A. Craig
'
' This software is provided 'as-is', without any express or implied warranty. In no
' event will the authors be held liable for any damages arising from the use of this
' software.
'
' Permission is granted to anyone to use this software for any purpose, including
' commercial applications, and to alter it and redistribute it freely, subject to the
' following restrictions:
'
' 1. The origin of this software must not be misrepresented; you must not claim that
' you wrote the original software. If you use this software in a product, an
' acknowledgment (see the following) in the product documentation is required.
'
' Portions Copyright 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
' or Copyright 2000-2002 Philip A. Craig
'
' 2. Altered source versions must be plainly marked as such, and must not be
' misrepresented as being the original software.
'
' 3. This notice may not be removed or altered from any source distribution.
'
'***********************************************************************************/
#endregion
using System;
using System.Drawing;
using System.Collections;
using System.Configuration;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
namespace NUnit.Gui
{
using NUnit.Core;
using NUnit.Util;
using NUnit.UiKit;
using CP.Windows.Forms;
public class NUnitForm : System.Windows.Forms.Form
{
#region Instance variables
// Handlers for our recentFiles and recentProjects
private RecentFileMenuHandler recentProjectsMenuHandler;
// Structure used for command line options
public struct CommandLineOptions
{
public string testFileName;
public string configName;
public string testName;
public bool noload;
public bool autorun;
}
// Our current run command line options
private CommandLineOptions commandLineOptions;
// TipWindow for the detail list
CP.Windows.Forms.TipWindow tipWindow;
int hoverIndex = -1;
private TestTree testTree;
public System.Windows.Forms.Splitter splitter1;
public System.Windows.Forms.Panel panel1;
public System.Windows.Forms.TabPage testsNotRun;
public System.Windows.Forms.MenuItem exitMenuItem;
public System.Windows.Forms.MenuItem helpMenuItem;
public System.Windows.Forms.MenuItem aboutMenuItem;
public System.Windows.Forms.MainMenu mainMenu;
private System.Windows.Forms.ListBox detailList;
public System.Windows.Forms.Splitter splitter3;
public System.Windows.Forms.TextBox stackTrace;
public NUnit.UiKit.StatusBar statusBar;
public System.Windows.Forms.TabControl resultTabs;
public System.Windows.Forms.TabPage errorPage;
public System.Windows.Forms.TabPage stderr;
public System.Windows.Forms.TabPage stdout;
public System.Windows.Forms.RichTextBox stdErrTab;
public System.Windows.Forms.RichTextBox stdOutTab;
public NUnit.UiKit.NotRunTree notRunTree;
private System.ComponentModel.IContainer components;
public System.Windows.Forms.ToolTip toolTip;
private System.Windows.Forms.MenuItem closeMenuItem;
public System.Windows.Forms.MenuItem fileMenu;
public System.Windows.Forms.MenuItem helpItem;
public System.Windows.Forms.MenuItem helpMenuSeparator1;
private System.Windows.Forms.MenuItem reloadMenuItem;
public System.Windows.Forms.GroupBox groupBox1;
public System.Windows.Forms.Button runButton;
public System.Windows.Forms.Label suiteName;
public NUnit.UiKit.ProgressBar progressBar;
private System.Windows.Forms.Button stopButton;
private System.Windows.Forms.MenuItem toolsMenu;
private System.Windows.Forms.MenuItem optionsMenuItem;
private System.Windows.Forms.MenuItem saveXmlResultsMenuItem;
private System.Windows.Forms.MenuItem projectMenu;
private System.Windows.Forms.MenuItem editProjectMenuItem;
private System.Windows.Forms.MenuItem configMenuItem;
private System.Windows.Forms.MenuItem saveMenuItem;
private System.Windows.Forms.MenuItem saveAsMenuItem;
private System.Windows.Forms.MenuItem newMenuItem;
private System.Windows.Forms.MenuItem openMenuItem;
private System.Windows.Forms.MenuItem recentProjectsMenu;
private System.Windows.Forms.MenuItem fileMenuSeparator1;
private System.Windows.Forms.MenuItem fileMenuSeparator2;
public System.Windows.Forms.MenuItem fileMenuSeparator4;
private System.Windows.Forms.MenuItem projectMenuSeparator1;
private System.Windows.Forms.MenuItem projectMenuSeparator2;
private System.Windows.Forms.MenuItem toolsMenuSeparator1;
private System.Windows.Forms.MenuItem addVSProjectMenuItem;
private System.Windows.Forms.ContextMenu detailListContextMenu;
private System.Windows.Forms.MenuItem copyDetailMenuItem;
private System.Windows.Forms.MenuItem exceptionDetailsMenuItem;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.MenuItem addAssemblyMenuItem;
#endregion
#region Construction and Disposal
public NUnitForm( CommandLineOptions commandLineOptions )
{
InitializeComponent();
this.mainMenu.MenuItems.Add(1, testTree.ViewMenu);
this.commandLineOptions = commandLineOptions;
stdErrTab.Enabled = true;
stdOutTab.Enabled = true;
runButton.Enabled = false;
stopButton.Enabled = false;
AppUI.Init(
this,
new TextBoxWriter( stdOutTab ),
new TextBoxWriter( stdErrTab ) );
recentProjectsMenuHandler = new RecentFileMenuHandler( recentProjectsMenu, UserSettings.RecentProjects );
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#endregion
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(NUnitForm));
this.statusBar = new NUnit.UiKit.StatusBar();
this.mainMenu = new System.Windows.Forms.MainMenu();
this.fileMenu = new System.Windows.Forms.MenuItem();
this.newMenuItem = new System.Windows.Forms.MenuItem();
this.openMenuItem = new System.Windows.Forms.MenuItem();
this.closeMenuItem = new System.Windows.Forms.MenuItem();
this.fileMenuSeparator1 = new System.Windows.Forms.MenuItem();
this.saveMenuItem = new System.Windows.Forms.MenuItem();
this.saveAsMenuItem = new System.Windows.Forms.MenuItem();
this.fileMenuSeparator2 = new System.Windows.Forms.MenuItem();
this.reloadMenuItem = new System.Windows.Forms.MenuItem();
this.recentProjectsMenu = new System.Windows.Forms.MenuItem();
this.fileMenuSeparator4 = new System.Windows.Forms.MenuItem();
this.exitMenuItem = new System.Windows.Forms.MenuItem();
this.projectMenu = new System.Windows.Forms.MenuItem();
this.configMenuItem = new System.Windows.Forms.MenuItem();
this.projectMenuSeparator1 = new System.Windows.Forms.MenuItem();
this.addAssemblyMenuItem = new System.Windows.Forms.MenuItem();
this.addVSProjectMenuItem = new System.Windows.Forms.MenuItem();
this.projectMenuSeparator2 = new System.Windows.Forms.MenuItem();
this.editProjectMenuItem = new System.Windows.Forms.MenuItem();
this.toolsMenu = new System.Windows.Forms.MenuItem();
this.saveXmlResultsMenuItem = new System.Windows.Forms.MenuItem();
this.exceptionDetailsMenuItem = new System.Windows.Forms.MenuItem();
this.toolsMenuSeparator1 = new System.Windows.Forms.MenuItem();
this.optionsMenuItem = new System.Windows.Forms.MenuItem();
this.helpItem = new System.Windows.Forms.MenuItem();
this.helpMenuItem = new System.Windows.Forms.MenuItem();
this.helpMenuSeparator1 = new System.Windows.Forms.MenuItem();
this.aboutMenuItem = new System.Windows.Forms.MenuItem();
this.splitter1 = new System.Windows.Forms.Splitter();
this.panel1 = new System.Windows.Forms.Panel();
this.resultTabs = new System.Windows.Forms.TabControl();
this.errorPage = new System.Windows.Forms.TabPage();
this.stackTrace = new System.Windows.Forms.TextBox();
this.splitter3 = new System.Windows.Forms.Splitter();
this.detailList = new System.Windows.Forms.ListBox();
this.testsNotRun = new System.Windows.Forms.TabPage();
this.notRunTree = new NUnit.UiKit.NotRunTree();
this.stderr = new System.Windows.Forms.TabPage();
this.stdErrTab = new System.Windows.Forms.RichTextBox();
this.stdout = new System.Windows.Forms.TabPage();
this.stdOutTab = new System.Windows.Forms.RichTextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.stopButton = new System.Windows.Forms.Button();
this.runButton = new System.Windows.Forms.Button();
this.suiteName = new System.Windows.Forms.Label();
this.progressBar = new NUnit.UiKit.ProgressBar();
this.detailListContextMenu = new System.Windows.Forms.ContextMenu();
this.copyDetailMenuItem = new System.Windows.Forms.MenuItem();
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.testTree = new NUnit.UiKit.TestTree();
this.panel2 = new System.Windows.Forms.Panel();
this.panel1.SuspendLayout();
this.resultTabs.SuspendLayout();
this.errorPage.SuspendLayout();
this.testsNotRun.SuspendLayout();
this.stderr.SuspendLayout();
this.stdout.SuspendLayout();
this.groupBox1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// statusBar
//
this.statusBar.DisplayTestProgress = true;
this.statusBar.Location = new System.Drawing.Point(0, 497);
this.statusBar.Name = "statusBar";
this.statusBar.ShowPanels = true;
this.statusBar.Size = new System.Drawing.Size(623, 32);
this.statusBar.TabIndex = 0;
this.statusBar.Text = "Status";
//
// mainMenu
//
this.mainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.fileMenu,
this.projectMenu,
this.toolsMenu,
this.helpItem});
//
// fileMenu
//
this.fileMenu.Index = 0;
this.fileMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.newMenuItem,
this.openMenuItem,
this.closeMenuItem,
this.fileMenuSeparator1,
this.saveMenuItem,
this.saveAsMenuItem,
this.fileMenuSeparator2,
this.reloadMenuItem,
this.recentProjectsMenu,
this.fileMenuSeparator4,
this.exitMenuItem});
this.fileMenu.Text = "&File";
this.fileMenu.Popup += new System.EventHandler(this.fileMenu_Popup);
//
// newMenuItem
//
this.newMenuItem.Index = 0;
this.newMenuItem.Shortcut = System.Windows.Forms.Shortcut.CtrlN;
this.newMenuItem.Text = "&New Project...";
this.newMenuItem.Click += new System.EventHandler(this.newMenuItem_Click);
//
// openMenuItem
//
this.openMenuItem.Index = 1;
this.openMenuItem.Shortcut = System.Windows.Forms.Shortcut.CtrlO;
this.openMenuItem.Text = "&Open...";
this.openMenuItem.Click += new System.EventHandler(this.openMenuItem_Click);
//
// closeMenuItem
//
this.closeMenuItem.Index = 2;
this.closeMenuItem.Text = "&Close";
this.closeMenuItem.Click += new System.EventHandler(this.closeMenuItem_Click);
//
// fileMenuSeparator1
//
this.fileMenuSeparator1.Index = 3;
this.fileMenuSeparator1.Text = "-";
//
// saveMenuItem
//
this.saveMenuItem.Index = 4;
this.saveMenuItem.Shortcut = System.Windows.Forms.Shortcut.CtrlS;
this.saveMenuItem.Text = "&Save";
this.saveMenuItem.Click += new System.EventHandler(this.saveMenuItem_Click);
//
// saveAsMenuItem
//
this.saveAsMenuItem.Index = 5;
this.saveAsMenuItem.Text = "Save &As...";
this.saveAsMenuItem.Click += new System.EventHandler(this.saveAsMenuItem_Click);
//
// fileMenuSeparator2
//
this.fileMenuSeparator2.Index = 6;
this.fileMenuSeparator2.Text = "-";
//
// reloadMenuItem
//
this.reloadMenuItem.Index = 7;
this.reloadMenuItem.Shortcut = System.Windows.Forms.Shortcut.CtrlR;
this.reloadMenuItem.Text = "&Reload";
this.reloadMenuItem.Click += new System.EventHandler(this.reloadMenuItem_Click);
//
// recentProjectsMenu
//
this.recentProjectsMenu.Index = 8;
this.recentProjectsMenu.Text = "Recent &Files";
//
// fileMenuSeparator4
//
this.fileMenuSeparator4.Index = 9;
this.fileMenuSeparator4.Text = "-";
//
// exitMenuItem
//
this.exitMenuItem.Index = 10;
this.exitMenuItem.Text = "E&xit";
this.exitMenuItem.Click += new System.EventHandler(this.exitMenuItem_Click);
//
// projectMenu
//
this.projectMenu.Index = 1;
this.projectMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.configMenuItem,
this.projectMenuSeparator1,
this.addAssemblyMenuItem,
this.addVSProjectMenuItem,
this.projectMenuSeparator2,
this.editProjectMenuItem});
this.projectMenu.Text = "&Project";
this.projectMenu.Visible = false;
this.projectMenu.Popup += new System.EventHandler(this.projectMenu_Popup);
//
// configMenuItem
//
this.configMenuItem.Index = 0;
this.configMenuItem.Text = "&Configurations";
//
// projectMenuSeparator1
//
this.projectMenuSeparator1.Index = 1;
this.projectMenuSeparator1.Text = "-";
//
// addAssemblyMenuItem
//
this.addAssemblyMenuItem.Index = 2;
this.addAssemblyMenuItem.Text = "Add Assembly...";
this.addAssemblyMenuItem.Click += new System.EventHandler(this.addAssemblyMenuItem_Click);
//
// addVSProjectMenuItem
//
this.addVSProjectMenuItem.Index = 3;
this.addVSProjectMenuItem.Text = "Add VS Project...";
this.addVSProjectMenuItem.Click += new System.EventHandler(this.addVSProjectMenuItem_Click);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -