我被赋予了一个任务"在执行junit / test case时自动生成序列图"在日食。我正在学习UML。我找到了可以生成序列的工具,我知道junit,但我如何同时支持这两个。
我发现的工具是UMLet,ModelGoon UML,Object Aid。但是我把它归结为ModelGoon。我发现它简单易用。如何自动执行此任务,如果是,请指导我。
如果还有其他可用的工具,请指导我。
答案 0 :(得分:1)
首先:这是一个非常好的主意,有几种解决方法。我将假设您使用的是jvm语言(例如Kotlin或Java),因此我将提出的建议对此有偏见。
设置您的日志记录以使用json进行记录,这使其余的工作变得更加简单:https://www.baeldung.com/java-log-json-output
建立一个库,在其中记录您所在组件/方法的名称以及正在处理的会话。有许多方式,但是一个简单的方法是线程局部变量:设置变量以包含要跟踪的事物的名称(“用例foobar”)和一些唯一的ID。 (UUID是不错的选择)。另一个方法是生成一些跟踪ID(或从外部交互中获取一个),并将其作为参数发送给所有涉及的方法。这两种方法都可以使用,实际上哪一种最简单取决于应用程序的体系结构。
在要跟踪的方法中,编写一个日志条目,其中包含该跟踪信息(用例名称,跟踪ID或其任意组合),写入日志条目的位置以及所有其他信息您想添加到序列图中。
正常运行测试。将产生一个日志。您需要能够检索该日志。有多种方法可以完成,请使用一种:-)
过滤日志条目,以便仅获得您感兴趣的条目。使用“ jq”实用程序是一个不错的选择。
处理过滤后的输出,以生成序列图的“植物uml”输入文件(http://plantuml.com/)。
处理工厂UML文件以获得序列图。
完成。
使用诸如“ https://opentracing.io/”之类的一些标准工具进行跟踪,使用该工具对应用程序进行检测,并使用该标准工具提取图。
这也将在生产中起作用,并且缩放可能比直接方法要好得多,但是如果缩放不是您的事,那么直接方法可能就是您想要做的。
> li>