using DocumentFormat.OpenXml.Wordprocessing; using KssSmaPlaLib.Commons; using KssSmaPlaLib.AutoTest.Script; using Serilog.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using KssSmaPlaLib.Batch.Log; using KssSmaPlaLib.AutoTest.Command.Alias.Loader; using KssSmaPlaLib.AutoTest.Command.Alias; using KssSmaPlaLib.AutoTest.Script.Load; using KssSmaPlaLib.AutoTest.Script.Storage; using KssSmaPlaLib.AutoTest.Script.Parse; namespace KssSmaPlaLib.AutoTest.Core { public static class TestModeInitializerUxer { public static bool TryInitialize(string[] args, out string resultMessage) { resultMessage = string.Empty; // UIステップテストモード判定 var isMode = StepTestRunnerUxer.IsModeByArgs(args); TestModeUxer.SetTestMode(isMode); if (!isMode) return true; // モードのとき、ロード(エイリアス) if (!CommandAliasLoaderUxer.Try(out var aliasDic, out var messageForMe)) { resultMessage = messageForMe; return false; } // 保存 CommandAliasUxer.SetAleiasDic(aliasDic); // ロード(テストスクリプト) if (!LoadTryUxer.TryLoad(out var stepInfoDTO, out messageForMe)) { resultMessage = messageForMe; return false; } // 保存 TestScriptStorageUxer.SetStepInfo(stepInfoDTO); // ステップ内容パース foreach (var step in stepInfoDTO.StepList) { if (!ParseTryUxer.TryParse(step.Raw, out var parsed, out messageForMe)) { resultMessage = $"ステップ内容が不正です。[ステップNo:{step.StepNo},ステップテキスト:{step.Raw.StepText},エラー内容:{messageForMe}]"; return false; } } // ステップ情報ログ出力 // ↓ToDo自動テスト用ログ出力を作る! //StepLogUxer.StepInfoLog(stepInfoDTO); return true; } } }