public void ExportTest() { var revxFolder = GetTestDataPath(); var outputPath = GetTestDataPath("output.json"); if (File.Exists(outputPath)) { File.Delete(outputPath); } // �G�N�X�|�[�g var exporter = new ReviewFileToJsonExporter(); exporter.Export(revxFolder, outputPath); // �t�@�C���̓��e���e�X�g Assert.IsTrue(File.Exists(outputPath)); var json = File.ReadAllText(outputPath); dynamic jsonModel = JsonConvert.DeserializeObject(json); // ���g���m�F Assert.IsNotNull(jsonModel.Reviews); Assert.AreEqual(3, jsonModel.Reviews.Count); Assert.AreEqual(3, jsonModel.Reviews[0].Issues.Count); Assert.AreEqual(3, jsonModel.Reviews[1].Issues.Count); Assert.AreEqual(3, jsonModel.Reviews[2].Issues.Count); var issue1 = jsonModel.Reviews[0].Issues[0]; Assert.AreEqual("1", (string)issue1.LID); Assert.AreEqual("Member2", (string)issue1.AssignedTo); Assert.AreEqual("Member3", (string)issue1.ConfirmedBy); }
/// <summary> /// メイン /// </summary> /// <param name="args"></param> static void Main(string[] args) { #region コマンドライン引数を取得 // 引数を取得 var parseResult = Parser.Default.ParseArguments <Options>(args); if (parseResult.Tag == ParserResultType.NotParsed) { Console.WriteLine($"エラー:パラメータの指定に誤りがあります。"); return; } var parsed = parseResult as Parsed <Options>; // 対象のフォルダパスおよび出力パスを取得 var folderPath = parsed.Value.FolderPath; if (!Directory.Exists(folderPath)) { Console.WriteLine($"エラー:指定したフォルダ{folderPath}は存在しません。"); return; } // 出力先のファイルが指定なければ設定する var outputPath = parsed.Value.OutputPath; if (string.IsNullOrEmpty(outputPath)) { outputPath = "output.json"; } // サブフォルダを含む var recursive = parsed.Value.Recursive; #endregion #region 処理の実行 // ストップウォッチを用意しておく var stopWatch = new Stopwatch(); stopWatch.Start(); // エクスポート処理 var exporter = new ReviewFileToJsonExporter(); // ロガーを設定しておく exporter.Logger = (message) => Console.WriteLine(message); Console.WriteLine($"フォルダ{folderPath}のレビューファイルを検索しています。"); // 実行 exporter.Export(folderPath, outputPath, recursive); stopWatch.Stop(); // 完了メッセージ Console.WriteLine($"成功:検索したレビューファイルのJsonデータを{outputPath}に作成しました(処理時間 {stopWatch.ElapsedMilliseconds}ms)。"); #endregion }
public void ExportParamTest() { var revxFolder = GetTestDataPath("ExportParamTest"); var outputPath = GetTestDataPath("output.json"); var exporter = new ReviewFileToJsonExporter(); // �����̃t�@�C�� exporter.Export(revxFolder, outputPath); var json = File.ReadAllText(outputPath); dynamic jsonModel = JsonConvert.DeserializeObject(json); Assert.AreEqual(3, (int)jsonModel.TotalReviewCount); // �T�u�t�H���_���܂� exporter.Export(revxFolder, outputPath, true); json = File.ReadAllText(outputPath); jsonModel = JsonConvert.DeserializeObject(json); Assert.AreEqual(6, (int)jsonModel.TotalReviewCount); }
public void PerfomanceTest() { var revxFolder = GetTestDataPath(); // �e�X�g�p�̃t�H���_���쐬���� var peformanceTestFolder = Path.Combine(revxFolder, "PeformanceTestData"); RecreateDirectory(peformanceTestFolder); #region �e�X�g�f�[�^�̍쐬 // �w�肳�ꂽ�t�H���_�ȉ��̃��r���[�t�@�C���ɑ��āA���r���[�̃f�[�^���擾���� var ReviewFile = Directory.GetFiles(revxFolder, "*.revx", SearchOption.AllDirectories).FirstOrDefault(); // �e�X�g�t�@�C���̍쐬 for (var i = 0; i < 1000; i++) { var destFilePath = Path.Combine(peformanceTestFolder, $"PerformanceReviewFile{i}.revx"); File.Copy(ReviewFile, destFilePath); } #endregion #region ���s���Ď��Ԃ��v������ var stopwatch = new Stopwatch(); var outputPath = Path.Combine(peformanceTestFolder, "output.json"); var exporter = new ReviewFileToJsonExporter(); exporter.Export(peformanceTestFolder, outputPath); stopwatch.Start(); // ���s���Ԃ�5000ms�ȓ��ł��邱�� Assert.IsTrue(stopwatch.ElapsedMilliseconds < 5000); #endregion }