开发区域

高级软件开发与MATLAB

还有另一种享用秘制酱汁的方法

这里是Stephen Carter再次描述R2016b中一个令人兴奋的特性,用于测试结果分析、报告和归档。把它拿走,斯蒂芬!

在我以前的文章,我演示了您可以通过新细节财产在你TestResult在R2016a开始输出。就像我在那篇文章中提到的,当您通过输入意外地清除屏幕上的诊断输出时,这种访问诊断的新方法将会派上用场clc.但是如果你是那种除了打字clc也有打字的习惯清除所有

如果你输入清除所有,或者你不小心把你的TestResult数组,因为它存储在变量,或者结束MATLAB会话,或者其他情况……如果你丢失了你的测试结果,唯一的方法就是重新运行你的测试。那么怎样才能避免这种情况呢?

我建议将诊断输出写入文件而不是命令窗口。现在,许多人可能已经在这样做了,特别是如果您已经像前面讨论的那样将诊断与持续集成系统集成在一起的话最近的帖子.但是对于那些没有集成CI系统的人,或者可能已经忘记如何将输出保存到文件中的人来说,这就像使用去整理流当构造你的插件产生输出。例如:

进口matlab.unittest.plugins。*;进口matlab.unittest.TestRunner;跑步者= TestRunner.withTextOutput;文件流=去整理(“myTestRunResults.txt”);文件流runner.addPlugin (LoggingPlugin.withVerbosity (1));文件流runner.addPlugin (TestRunProgressPlugin.withVerbosity (2));runner.addPlugin (FailureDiagnosticsPlugin(文件流));%……

但这并不是什么新鲜事。我为什么要讲这个?首先,我想指出,养成将结果保存到文件中的习惯将帮助您避免丢失测试运行的诊断结果。但我必须问你……你喜欢阅读纯文本吗?难道您不想将您的测试结果发布到一个漂亮的报告中吗?

另一个激励人的场景是,想象您想要与另一个人分享您的测试结果。虽然你总是可以选择让人们查看你的电脑屏幕或查看你保存的文本文件,但这并不太专业。另一种选择是在CI系统中向他们展示您的结果,但如果您还没有将结果提交到CI系统,或者如果他们无法访问您的CI系统,该怎么办?或者在一个极端的情况下,如果你发现自己想要在20年后分享你的成果。很有可能您的CI系统将不复存在。我们需要一种不同的方法来进行诊断,以处理这些用例。

这时,专业格式的DOCX或PDF文档就可以派上用场了。好吧,你很幸运!最近,我们已经开始致力于报告的生成,从R2016b开始,我们现在提供aTestReportPlugin.所以,如果你想存档你的测试结果,更容易地浏览你的测试结果,或者用一份看起来很专业的文档来展示你做过的所有出色的测试,让你的老板印象深刻,你可以做以下事情:

进口matlab.unittest.TestRunner;进口matlab.unittest.plugins.TestReportPlugin;进口matlab.unittest.TestSuite;跑步者= TestRunner.withTextOutput;%或选择withNoPluginsreportFile = [tempname“。docx”];%或选择您自己的位置插件= TestReportPlugin.producingDOCX (...%或选择producingPDFreportFile,...“IncludingPassingDiagnostics”,真的,...“PageOrientation”“画像”...%或选择“风景”“IncludingCommandWindowText”、假);runner.addPlugin(插件);套件= TestSuite.fromFolder (pwd);%或选择任何您想要的套件结果= runner.run(套);

这将生成一个包含测试运行结果详细信息的报告文件。文档的第一页是一个封面页,让您快速查看测试运行的总体结果。

您将能够使用导航窗格轻松地导航文档。

摘要和概述部分允许您轻松地查看测试套件的哪些区域通过了、失败了或被过滤了。

这些部分还提供了图标和文本,单击这些图标可以轻松跳转到单个测试的详细信息。

当然,还有更多我可以展示给你看的东西,所以你自己试试吧!我们将在即将发布的版本中继续改进我们的报告功能。

此外,我们正在努力提供更多额外的方式,以提供我们的秘密酱汁给您。所以我们问你…当涉及到诊断时,您的用例和首选项是什么?我们加的盐和胡椒够了吗?让我们知道。




发布与MATLAB®R2016b

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。