Example #1
0
        /// <summary>
        /// 根据用户所指定文件类型输出报告
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <param name="runtimeHash">运行时哈希值</param>
        /// <param name="reportType">报告类型枚举,有txt文件,xml文件,json文件,和自定义报告</param>
        /// <param name="customPrinter">可选参数,用于当reportType为custom的时候</param>
        public void PrintReport(string filePath, string runtimeHash, ReportType reportType, IResultPrinter customPrinter = null)
        {
            //检查文件路径正确与否
            string         newFilePath    = ModuleUtil.CheckFilePath(filePath);
            IResultPrinter _resultPrinter = null;

            switch (reportType)
            {
            case ReportType.txt:
                _resultPrinter = new TxtWriter();
                break;

            case ReportType.xml:
                _resultPrinter = new XMLWriter();
                break;

            case ReportType.json:
                _resultPrinter = new JsonWriter();
                break;

            case ReportType.custom:
                //需输入继承IResultPrinter的customPrinter的实例
                if (customPrinter == null)
                {
                    //如果实例为null则抛出异常
                    throw new TestflowRuntimeException(ModuleErrorCode.CustomWriterNonExistent, "Custom ResultPrinter required.");
                }
                _resultPrinter = customPrinter;    //继承IResultPrinter的自定义Printer
                break;
            }
            //输出报告
            _resultPrinter.PrintReport(newFilePath, runtimeHash);
        }