コード例 #1
0
        private static void RunArguments(Arguments arguments)
        {
            JSONCoverage jsonCoverage    = CoberturaConverter.ConvertFromCobertura(arguments.CoverageFile, arguments.RepositoryRoot);
            var          client          = new Client(arguments.BitbucketURL, arguments.Username, arguments.Password);
            var          responseMessage = client.PostCoverageAsync(arguments.CommidID, jsonCoverage.ConvertToJson());

            Console.WriteLine(responseMessage.Result.ToString());
        }
コード例 #2
0
        public static JSONCoverage ConvertFromCobertura(string pathToCoverageFile, string repoRoot)
        {
            JSONCoverage jsonCoverage = new JSONCoverage();
            XmlDocument  xmlDocument  = new XmlDocument();

            xmlDocument.Load(pathToCoverageFile);
            string source = xmlDocument.SelectSingleNode(_pathToSource).InnerText;

            repoRoot = string.Equals(repoRoot, null) ? string.Empty : repoRoot;
            foreach (XmlNode xmlNode in xmlDocument.SelectNodes(_pathToClass))
            {
                string       fileName     = Help.GetRelativeFilePath(Path.Combine(source, xmlNode.Attributes["filename"].Value), repoRoot);
                FileCoverage fileCoverage = new FileCoverage(fileName);
                var          a            = xmlNode.SelectNodes(_pathToLine).Count;
                foreach (XmlNode node in xmlNode.SelectNodes(_pathToLine))
                {
                    int lineNumber = int.Parse(node.Attributes["number"].Value);
                    if (int.Parse(node.Attributes["hits"].Value) > 0)
                    {
                        if (bool.Parse(node.Attributes["branch"].Value))
                        {
                            if (double.Parse(node.Attributes["condition-coverage"].Value.Split('%')[0]) < 100)
                            {
                                fileCoverage.PartialCoveredLines.Add(lineNumber);
                                continue;
                            }
                        }
                        fileCoverage.FullyCoveredLines.Add(lineNumber);
                    }
                    else
                    {
                        fileCoverage.UncoveredLines.Add(lineNumber);
                    }
                }
                jsonCoverage.FileCoverages.Add(fileCoverage);
            }
            return(jsonCoverage);
        }