Пример #1
0
        public override string WriteResultsToFile(Jargon jargon)
        {
            if (results == null)
            {
                return(string.Empty);
            }

            string ret = GetResultsFilePath();

            if (string.IsNullOrEmpty(ret))
            {
                return(string.Empty);
            }

            OutputWriter formatter;

            switch (jargon)
            {
            case Jargon.NUnitV2:
                formatter = new NUnit2XmlOutputWriter(DateTime.UtcNow);
                break;

            case Jargon.NUnitV3:
                formatter = new NUnit3XmlOutputWriter(DateTime.UtcNow);
                break;

            default:
                throw new InvalidOperationException($"Jargon {jargon} is not supported by this runner.");
            }

            formatter.WriteResultFile(results, ret);

            return(ret);
        }
Пример #2
0
        public static string GetXmlFilePath(string path, Jargon xmlType)
        {
            var fileName = Path.GetFileName(path);

            switch (xmlType)
            {
            case Jargon.TouchUnit:
            case Jargon.NUnitV2:
            case Jargon.NUnitV3:
                return(path.Replace(fileName, $"nunit-{fileName}"));

            case Jargon.xUnit:
                return(path.Replace(fileName, $"xunit-{fileName}"));

            default:
                return(path);
            }
        }
Пример #3
0
        // test if the file is valid xml, or at least, that can be read it.
        public static bool IsValidXml(string path, out Jargon type)
        {
            type = Jargon.Missing;
            if (!File.Exists(path))
            {
                return(false);
            }

            using (var stream = File.OpenText(path)) {
                string line;
                while ((line = stream.ReadLine()) != null)                    // special case when get got the tcp connection
                {
                    if (line.Contains("ping"))
                    {
                        continue;
                    }
                    if (line.Contains("test-run"))                        // first element of the NUnitV3 test collection
                    {
                        type = Jargon.NUnitV3;
                        return(true);
                    }
                    if (line.Contains("TouchUnitTestRun"))
                    {
                        type = Jargon.TouchUnit;
                        return(true);
                    }
                    if (line.Contains("test-results"))                        // first element of the NUnitV3 test collection
                    {
                        type = Jargon.NUnitV2;
                        return(true);
                    }
                    if (line.Contains("<assemblies>"))                        // first element of the xUnit test collection
                    {
                        type = Jargon.xUnit;
                        return(true);
                    }
                }
            }
            return(false);
        }
Пример #4
0
        public override void WriteResultsToFile(TextWriter writer, Jargon jargon)
        {
            if (results == null)
            {
                return;
            }
            OutputWriter formatter;

            switch (jargon)
            {
            case Jargon.NUnitV2:
                formatter = new NUnit2XmlOutputWriter(DateTime.UtcNow);
                break;

            case Jargon.NUnitV3:
                formatter = new NUnit3XmlOutputWriter(DateTime.UtcNow);
                break;

            default:
                throw new InvalidOperationException($"Jargon {jargon} is not supported by this runner.");
            }
            formatter.WriteResultFile(results, writer);
        }
Пример #5
0
        public static void GenerateTestReport(StreamWriter writer, string resultsPath, Jargon xmlType)
        {
            using (var stream = new StreamReader(resultsPath))
                using (var reader = XmlReader.Create(stream)) {
                    switch (xmlType)
                    {
                    case Jargon.NUnitV2:
                    case Jargon.TouchUnit:
                        GenerateNUnitV2TestReport(writer, reader);
                        break;

                    case Jargon.xUnit:
                        GeneratexUnitTestReport(writer, reader);
                        break;

                    case Jargon.NUnitV3:
                        GenerateNUnitV3TestReport(writer, reader);
                        break;

                    default:
                        writer.WriteLine($"<span style='padding-left: 15px;'>Could not parse {resultsPath}: Not supported format.</span><br />");
                        break;
                    }
                }
        }
Пример #6
0
        public static (string resultLine, bool failed) GenerateHumanReadableResults(string source, string destination, Jargon xmlType)
        {
            (string resultLine, bool failed)parseData;
            using (var reader = new StreamReader(source))
                using (var writer = new StreamWriter(destination, true)) {
                    switch (xmlType)
                    {
                    case Jargon.TouchUnit:
                        parseData = ParseTouchUnitXml(reader, writer);
                        break;

                    case Jargon.NUnitV2:
                        parseData = ParseNUnitXml(reader, writer);
                        break;

                    case Jargon.NUnitV3:
                        parseData = ParseNUnitV3Xml(reader, writer);
                        break;

                    case Jargon.xUnit:
                        parseData = ParsexUnitXml(reader, writer);
                        break;

                    default:
                        parseData = ("", true);
                        break;
                    }
                }
            return(parseData);
        }
Пример #7
0
 public abstract void WriteResultsToFile(TextWriter writer, Jargon jargon);
Пример #8
0
 public abstract string WriteResultsToFile(Jargon jargon);