private void OnExport() { if (selectedSetting == null) { return; } ClearLogs(); SaveSettings(); OutLog("Start exporting with validation."); var baseFolderPath = AssetDatabase.GetAssetPath(baseFolder); result = ValidatedExporter.ValidatedExport(baseFolderPath, selectedSetting, forceExport); AssetDatabase.Refresh(); var header = string.Format("- version:{0}", ProductInfoUtility.GetVersion()) + Environment.NewLine; header += string.Format("- Rule set:{0}", selectedSetting.SettingName) + Environment.NewLine; header += string.Format("- Base folder:{0}", baseFolderPath) + Environment.NewLine; if (forceExport) { header += string.Format("- Force export:{0}", forceExport) + Environment.NewLine; } var log = header + result.GetValidationLog() + result.GetExportLog() + result.log; forceExport = false; SetMessages(header, result); OutLog(log); OutLog("Export completed."); }
private void Init() { settings = null; settingNames = null; forceExport = false; ruleSetName = ""; exportLog = ""; result = null; messages = new List <Message>(); LoadSettings(); }
private void SetMessages(string header, ValidatedExportResult exportResult) { if (exportResult != null && exportResult.validationResults != null) { foreach (var result in exportResult.validationResults) { var ruleResultLog = result.GetResultLog(false); if (!string.IsNullOrEmpty(ruleResultLog)) { messages.Add(new Message(ruleResultLog, MessageType.Info, null)); } foreach (var issue in result.Issues) { var txt = result.RuleName + Environment.NewLine; if (issue.target != null) { txt += issue.target.name + Environment.NewLine; } txt += issue.message + Environment.NewLine + issue.solution; messages.Add(new Message(txt, GetMessageType(issue.level), issue)); } } } if (exportResult.IsExportSuccess) { messages.Add(new Message(LocalizedMessage.Get("ValidatedExporterWindow.Succeeded") + Environment.NewLine + header, MessageType.Info)); if (exportResult.GetValidationLog() != "") { messages.Add(new Message(exportResult.GetValidationLog(), MessageType.Info)); } if (exportResult.GetExportLog() != "") { messages.Add(new Message(exportResult.GetExportLog(), MessageType.Info)); } var package = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(exportResult.exportResult.exportFilePath); var result = new Issue(package, IssueLevel.Info, LocalizedMessage.Get("ValidatedExporterWindow.Succeeded")); messages.Add(new Message(LocalizedMessage.Get("ValidatedExporterWindow.SucceededDetail") + Environment.NewLine + exportResult.exportResult.exportFilePath, MessageType.Info, result)); } else { messages.Add(new Message(LocalizedMessage.Get("ValidatedExporterWindow.Aborted") + Environment.NewLine + header, MessageType.Error)); messages.Add(new Message(exportResult.log, MessageType.Info)); if (exportResult.GetExportLog() != "") { messages.Add(new Message(exportResult.GetExportLog(), MessageType.Error)); } } }
public void TestExportError() { var filename = "testError.unitypackage"; var baseFolderPath = "Assets/VitDeck/Exporter/Tests/TestBaseFolder"; var setting = new ExportSetting(); setting.SettingName = ""; setting.Description = ""; setting.ExportFolderPath = testExportFolder; setting.fileNameFormat = filename; setting.ruleSetName = ""; ValidatedExporter.ValidatedExport(baseFolderPath, setting, false); //ファイル重複していた場合 ValidatedExportResult willFailResult = new ValidatedExportResult(false); LogAssert.Expect(LogType.Error, new Regex(@"^System\.IO\.IOException.*")); Assert.DoesNotThrow(() => willFailResult = ValidatedExporter.ValidatedExport(baseFolderPath, setting, false)); Assert.That(willFailResult.exportResult, Is.Not.Null); var willPassResult = ValidatedExporter.ValidatedExport(baseFolderPath, setting, true); Assert.That(willPassResult.exportResult.exportResult, Is.True); }