Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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
        }