From cb2637b43ffa3616fa442e2bef22ae4601786ac7 Mon Sep 17 00:00:00 2001 From: CountrySideEngineer Date: Fri, 12 May 2023 22:12:50 +0900 Subject: [PATCH 1/4] Update TestRunner class. Simplify the class by change interface of Run method in the class. --- dev/src/gtest_gui/gtest_gui/Model/TestRunner.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/dev/src/gtest_gui/gtest_gui/Model/TestRunner.cs b/dev/src/gtest_gui/gtest_gui/Model/TestRunner.cs index b38dc66..0ef9011 100644 --- a/dev/src/gtest_gui/gtest_gui/Model/TestRunner.cs +++ b/dev/src/gtest_gui/gtest_gui/Model/TestRunner.cs @@ -110,14 +110,11 @@ public virtual void Run(string path, TestInformation information) /// Path to file. /// Test information. /// Test running process. - protected virtual Process Run(string path, TestItem testItem) + protected virtual void Run(string path, TestItem testItem) { - ProcessStartInfo procStartInfo = GetProcessStartInfo(path, testItem); - Process process = null; - - using (process = new Process()) + using (var process = new Process()) { - process.StartInfo = procStartInfo; + process.StartInfo = GetProcessStartInfo(path, testItem); process.ErrorDataReceived += OnErrorDataReceivedEvent; process.OutputDataReceived += OnOutputDataReceivedEvent; process.Start(); @@ -127,7 +124,6 @@ protected virtual Process Run(string path, TestItem testItem) process.OutputDataReceived -= OnOutputDataReceivedEvent; process.ErrorDataReceived -= OnErrorDataReceivedEvent; } - return process; } /// From ca9f67f3b74deb36209334f7c2ec91580fc62658 Mon Sep 17 00:00:00 2001 From: CountrySideEngineer Date: Fri, 12 May 2023 22:24:24 +0900 Subject: [PATCH 2/4] Add comments. --- .../Command/TestExecuteAsyncCommand.cs | 24 ++++++++++++++++--- .../gtest_gui/Command/TestExecuteCommand.cs | 3 +++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/dev/src/gtest_gui/gtest_gui/Command/TestExecuteAsyncCommand.cs b/dev/src/gtest_gui/gtest_gui/Command/TestExecuteAsyncCommand.cs index 62a49f5..00ac782 100644 --- a/dev/src/gtest_gui/gtest_gui/Command/TestExecuteAsyncCommand.cs +++ b/dev/src/gtest_gui/gtest_gui/Command/TestExecuteAsyncCommand.cs @@ -15,12 +15,24 @@ namespace gtest_gui.Command { public class TestExecuteAsyncCommand : TestExecuteCommand { + /// + /// Run test async. + /// protected TestRunnerAsync _runnerAsync; + /// + /// Content window class. + /// protected CountrySideEngineer.ContentWindow.ContentWindow _contentWindow; - protected CountrySideEngineer.ProgressWindow.ProgressWindow _proressWindow; + /// + /// Progress window class. + /// + protected ProgressWindow _proressWindow; + /// + /// Default constructor. + /// public TestExecuteAsyncCommand() : base() { _runnerAsync = new TestRunnerAsync(); @@ -28,6 +40,10 @@ public TestExecuteAsyncCommand() : base() _proressWindow = new CountrySideEngineer.ProgressWindow.ProgressWindow(); } + /// + /// Constructor with argument. + /// + /// public TestExecuteAsyncCommand(TestRunner runner) : base(runner) { _runnerAsync = new TestRunnerAsync(); @@ -47,8 +63,7 @@ public override object ExecuteCommand(TestCommandArgument cmdArgument) { SetUpTestRunner(cmdArgument); - string testFileName = System.IO.Path.GetFileNameWithoutExtension(cmdArgument.TestInfo.TestFile); - _contentWindow.ViewTitle = testFileName; + _contentWindow.ViewTitle = System.IO.Path.GetFileNameWithoutExtension(cmdArgument.TestInfo.TestFile); _contentWindow.Start(); _proressWindow.Start(_runnerAsync); @@ -99,6 +114,9 @@ protected override void SetUpTestRunner(TestCommandArgument cmdArg) _runnerAsync.TestInfo = cmdArg.TestInfo; } + /// + /// Teardown the test. + /// protected override void TearDownTestRunner() { base.TearDownTestRunner(); diff --git a/dev/src/gtest_gui/gtest_gui/Command/TestExecuteCommand.cs b/dev/src/gtest_gui/gtest_gui/Command/TestExecuteCommand.cs index cc29ff3..cad3095 100644 --- a/dev/src/gtest_gui/gtest_gui/Command/TestExecuteCommand.cs +++ b/dev/src/gtest_gui/gtest_gui/Command/TestExecuteCommand.cs @@ -135,6 +135,9 @@ protected virtual void SetUpTestRunner(TestCommandArgument cmdArg) } } + /// + /// Tear down the test. + /// protected virtual void TearDownTestRunner() { _runner.TestDataReceivedEventHandler -= _logBuilder.OnDataReceived; From df540238068752762aba1ad856731ba654b954c3 Mon Sep 17 00:00:00 2001 From: CountrySideEngineer Date: Mon, 15 May 2023 21:42:14 +0900 Subject: [PATCH 3/4] Change version. Update to ver.0.9.2. --- dev/src/gtest_gui/gtest_gui/gtest_gui.csproj | 6 +++--- .../gtest_gui/gtest_gui_dotNet/Properties/AssemblyInfo.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dev/src/gtest_gui/gtest_gui/gtest_gui.csproj b/dev/src/gtest_gui/gtest_gui/gtest_gui.csproj index be792d0..53681e3 100644 --- a/dev/src/gtest_gui/gtest_gui/gtest_gui.csproj +++ b/dev/src/gtest_gui/gtest_gui/gtest_gui.csproj @@ -4,9 +4,9 @@ WinExe netcoreapp3.1 true - 0.9.1.0 - 0.9.1.0 - 0.9.0.0 + 0.9.2.0 + 0.9.2.0 + 0.9.2.0 CountrySideEngineer ja-JP diff --git a/dev/src/gtest_gui/gtest_gui_dotNet/Properties/AssemblyInfo.cs b/dev/src/gtest_gui/gtest_gui_dotNet/Properties/AssemblyInfo.cs index 81acae5..60d5667 100644 --- a/dev/src/gtest_gui/gtest_gui_dotNet/Properties/AssemblyInfo.cs +++ b/dev/src/gtest_gui/gtest_gui_dotNet/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.9.1.0")] -[assembly: AssemblyFileVersion("0.9.1.0")] +[assembly: AssemblyVersion("0.9.2.0")] +[assembly: AssemblyFileVersion("0.9.2.0")] From 41f81c22d2a3ee750a52273fc45aedc7e9a8e898 Mon Sep 17 00:00:00 2001 From: CountrySideEngineer Date: Mon, 15 May 2023 21:42:52 +0900 Subject: [PATCH 4/4] Update binary files. --- .../bin/Release/netcoreapp3.1/gtest_gui.dll | Bin 111616 -> 111616 bytes .../bin/Release/netcoreapp3.1/gtest_gui.exe | Bin 175104 -> 175104 bytes .../bin/Release/netframework/gtest_gui.exe | Bin 111104 -> 111104 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/dev/src/bin/Release/netcoreapp3.1/gtest_gui.dll b/dev/src/bin/Release/netcoreapp3.1/gtest_gui.dll index eff4c807fc6ae45cf152e1b7ab757bece284905f..967bdf1573323ceca32f831d225a4e6601851b09 100644 GIT binary patch delta 8144 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 delta 8182 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 diff --git a/dev/src/bin/Release/netcoreapp3.1/gtest_gui.exe b/dev/src/bin/Release/netcoreapp3.1/gtest_gui.exe index e8ff4401464deae4dfca0457dec670aa0f64f026..9a739edcb554017be0b7937fb323064df5d33bfb 100644 GIT binary patch delta 52 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 D|G)L+