summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
commitc55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch)
treeee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs
downloadProject-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs')
-rw-r--r--Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs103
1 files changed, 103 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs
new file mode 100644
index 0000000..ffb8af3
--- /dev/null
+++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs
@@ -0,0 +1,103 @@
+using System;
+using System.IO;
+using System.Xml;
+using NUnit.Framework.Interfaces;
+using UnityEditor.TestTools.TestRunner.Api;
+using UnityEngine;
+
+namespace UnityEditor.TestTools.TestRunner.CommandLineTest
+{
+ internal class ResultsWriter
+ {
+ private const string k_nUnitVersion = "3.5.0.0";
+
+ private const string k_TestRunNode = "test-run";
+ private const string k_Id = "id";
+ private const string k_Testcasecount = "testcasecount";
+ private const string k_Result = "result";
+ private const string k_Total = "total";
+ private const string k_Passed = "passed";
+ private const string k_Failed = "failed";
+ private const string k_Inconclusive = "inconclusive";
+ private const string k_Skipped = "skipped";
+ private const string k_Asserts = "asserts";
+ private const string k_EngineVersion = "engine-version";
+ private const string k_ClrVersion = "clr-version";
+ private const string k_StartTime = "start-time";
+ private const string k_EndTime = "end-time";
+ private const string k_Duration = "duration";
+
+ private const string k_TimeFormat = "u";
+
+ public void WriteResultToFile(ITestResultAdaptor result, string filePath)
+ {
+ Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Saving results to: {0}", filePath);
+
+ try
+ {
+ if (!Directory.Exists(filePath))
+ {
+ CreateDirectory(filePath);
+ }
+
+ using (var fileStream = File.CreateText(filePath))
+ {
+ WriteResultToStream(result, fileStream);
+ }
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError("Saving result file failed.");
+ Debug.LogException(ex);
+ }
+ }
+
+ void CreateDirectory(string filePath)
+ {
+ var driectoryPath = Path.GetDirectoryName(filePath);
+ if (!String.IsNullOrEmpty(driectoryPath))
+ {
+ Directory.CreateDirectory(driectoryPath);
+ }
+ }
+
+ public void WriteResultToStream(ITestResultAdaptor result, StreamWriter streamWriter, XmlWriterSettings settings = null)
+ {
+ settings = settings ?? new XmlWriterSettings();
+ settings.Indent = true;
+ settings.NewLineOnAttributes = false;
+
+ using (var xmlWriter = XmlWriter.Create(streamWriter, settings))
+ {
+ WriteResultsToXml(result, xmlWriter);
+ }
+ }
+
+ void WriteResultsToXml(ITestResultAdaptor result, XmlWriter xmlWriter)
+ {
+ // XML format as specified at https://github.com/nunit/docs/wiki/Test-Result-XML-Format
+
+ var testRunNode = new TNode(k_TestRunNode);
+
+ testRunNode.AddAttribute(k_Id, "2");
+ testRunNode.AddAttribute(k_Testcasecount, (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString());
+ testRunNode.AddAttribute(k_Result, result.ResultState.ToString());
+ testRunNode.AddAttribute(k_Total, (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString());
+ testRunNode.AddAttribute(k_Passed, result.PassCount.ToString());
+ testRunNode.AddAttribute(k_Failed, result.FailCount.ToString());
+ testRunNode.AddAttribute(k_Inconclusive, result.InconclusiveCount.ToString());
+ testRunNode.AddAttribute(k_Skipped, result.SkipCount.ToString());
+ testRunNode.AddAttribute(k_Asserts, result.AssertCount.ToString());
+ testRunNode.AddAttribute(k_EngineVersion, k_nUnitVersion);
+ testRunNode.AddAttribute(k_ClrVersion, Environment.Version.ToString());
+ testRunNode.AddAttribute(k_StartTime, result.StartTime.ToString(k_TimeFormat));
+ testRunNode.AddAttribute(k_EndTime, result.EndTime.ToString(k_TimeFormat));
+ testRunNode.AddAttribute(k_Duration, result.Duration.ToString());
+
+ var resultNode = result.ToXml();
+ testRunNode.ChildNodes.Add(resultNode);
+
+ testRunNode.WriteTo(xmlWriter);
+ }
+ }
+}