генерировать автоматические тестовые случаи, используя диаграмму последовательности UML - PullRequest
0 голосов
/ 24 марта 2019
  1. Я сделал диаграмму последовательности и преобразовал ее в файл XML, затем я разработал парсер, использующий C # для извлечения тестовых случаев из этого файла XML, но, тем не менее, парсер работает не так хорошо, какЯ извлекаю точные теги и элементы, которые мне нужны для генерации тестовых случаев?

  2. это для консольного приложения c # visual studio 2017.

    public XDocument GetDiagramXml(string diagramName, string diagramXmlFile)
        {
            XNamespace UML = "omg.org/UML1.3";
            XDocument diagramElements = XDocument.Load(diagramXmlFile);
            XElement test = XElement.Load(diagramXmlFile);
    
            IEnumerable<XElement> elements = 
    diagramElements.Descendants("XMI.content");
            foreach (XElement element in elements)
            {
                XElement xmiElement2 = element.Element(UML + "Diagram");
                XElement xmiElement3 = null;
                if (xmiElement2.Attribute("name").Value == diagramName)
                    xmiElement3 = xmiElement2.Element(UML + 
    "Diagram.element");
                var output = xmiElement3.Descendants(UML + "DiagramElement");
                diagramElements = XDocument.Load(xmiElement3.CreateReader());
            }
    
            return diagramElements;
        }
     public Dictionary<string, string> GetDiagramElments(XDocument 
    diagramRawXml)
        {
            Dictionary<string, string> diagramExtractedElements = new 
    Dictionary<string, string>();
    
            return diagramExtractedElements;
        }
    public Dictionary<string, Dictionary<string, string>> 
    GetDiagramMessages(Dictionary<string, string> diagramExtractedElement, 
    string diagramXmlFile)
        {
            Dictionary<string, Dictionary<string, string>> messagesList = new 
    Dictionary<string, Dictionary<string, string>>();
    
            return messagesList;
    
        }
    
  3. фактическим результатом должны быть контрольные примеры, сгенерированные из диаграммы последовательности.

1 Ответ

0 голосов
/ 24 марта 2019

1001 * имеющий *

XNamespace UML = "omg.org/UML1.3";
...
XElement xmiElement2 = element.Element(UML + "Diagram");
...
xmiElement3 = xmiElement2.Element(UML + "Diagram.element");
...
var output = xmiElement3.Descendants(UML + "DiagramElement");

вы делаете

XElement xmiElement2 = element.Element("omg.org/UML1.3Diagram");
...
xmiElement3 = xmiElement2.Element("omg.org/UML1.3Diagram.element");
...
var output = xmiElement3.Descendants("omg.org/UML1.3DiagramElement");

вероятно, отсутствует '/', и это можно решить, выполнив

XNamespace UML = "omg.org/UML1.3/";

но не уверен, что этого достаточно, чтобы прочитать элементы, потому что все "странно"


Видимо, вы не читаете файл модели (в поисках взаимодействий), но файл представляет собой UML Diagram Interchange (из-за DiagramElement ), как вы можете получить UML1.3? Какой инструмент его сгенерировал?

Вы уверены, что хотите работать с UML Diagram Interchange? Вы даже уверены, что хотите работать с диаграммой взаимодействия / последовательности? Взаимодействие «ограничено», потому что это не поведение, например

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...