开发区域

高级软件开发与MATLAB

测试更多的项目

现在你了解一些项目.您可以看到它们是如何使您创建一个标准的环境设置,以便您(和其他人!)可以复制正确的条件,而无需大惊小怪或学习曲线。它为您提供了一个基本的开发单元,以便所有贡献者都知道如何立即开始并为您的工作做出贡献。

为了好玩,我想展示项目可以开始改善的工作流实例项目,展示项目可用于现有的代码,也许当我们在这,我们可以进入更多的福利项目。

那么,让我介绍一下libDirectional! 它有什么作用?实际上我几乎没有什么线索。这是一个与“方向流形上的方向统计和递归估计”相关的库,老实说,我对这个主题知之甚少。然而,它看起来像是一个整合得很好的项目。它有很好的文档,以一种很好的一致性方式构建其mex文件和从源代码派生的其他工件,它提供并管理其依赖项,并且它有一个非常全面的测试套件。荣誉!

我认为项目可以让它更上一层楼!这个项目已经在git中了,所以让我们通过在git中创建一个新项目来把它变成一个项目:

然后,系统会提示您输入存储库:

并确认项目名称:

如劳拉所示最后一次,您可以利用项目来确保在启动时固有地向项目添加正确的路径。不再需要安装说明,新的贡献者可以简单地加载项目。这也意味着不再需要处理路径管理的启动文件。

(pathstr, ~, ~) = fileparts (mfilename (' fullpath '));目录(genpath ([pathstr“/ lib”))) clearvarspathstr

项目设置会引导你完成这些,现在我们可以继续删除不再需要的启动文件:

注意,项目设置完成后,您可以很容易地将其转换为工具箱,以便分发给项目的用户使用其实也不需要贡献但我把这个留给你们作为练习来探索。

因此,现在只需克隆git存储库并启动项目,贡献者就可以开始工作并运行了。完成了。不需要说明。用户只需将工具箱作为附加组件安装即可启动并运行。可爱。

但是等等,还有更多!在项目中还有一个相对简单但强大的功能值得强调,它开始将我们引入额外的工作流程,例如通过持续集成确保质量。

关键是项目知道如何测试自己。或者,它们可能使项目作者能够精确地编码如何测试项目,以便其他人(如同事)和计算机(如CI构建代理)可以简单地问:“项目,测试你自己!”然后就可以开始比赛了。这只需简单地将“Test”标签作为元数据添加到测试文件中,然后,好吧,就是这样!

事实上,你甚至不需要添加一个测试标签,因为该项目在确定什么是测试并为您添加标签方面做出了坚实的努力。但是,它可能不会对所有测试都这样做,例如基于脚本的测试或从子类继承的测试matlab.unittest.TestCase,所以一定要确认你所有的测试都贴有适当的标签。在这种情况下,项目会在默认情况下适当地标记它们。如果想要从“标准”项目测试套件中排除某些测试,可以通过如下所示删除标签来实现。在某些情况下,这可能会派上用场,例如当您的一些测试需要很长时间执行,而您只想在特殊的延迟测试运行中运行它们时。

现在,用适当的项目元数据标记测试后,您可以直接从项目创建测试套件并运行它。它就像导航到项目根目录并调用一样简单runtests.同样,您可以简单地将项目的根文件夹传递给runtests功能:

runtestslibDirectional
完成设置项目夹具:打开项目'libDirectional'。__________运行TessellateS3Test。完成TessellateS3Test __________ Running AbstractCircularDistributionTest .....AbstractCircularDistributionTest __________…(剪)…已拆除ProjectFixture:关闭项目'libDirectional'。__________

注意,在上面的输出中,这利用了aProjectFixture.这是关键,因为ProjectFixture加载项目,从而确保在运行测试之前,使用正确的路径和其他需求正确设置开发环境。

您还可以使用各种插件定制您的测试运行器。在这种情况下,你可以使用testsuite函数(类似的)创建的测试项目(完成ProjectFixture连接),然后创建和优化跑步者你想使用这些测试你们的心的内容你可以生产水龙头或JUnit风格测试工件,PDF或html报告,报道,金宝appSimulink Test定制和许多其他你可能想要做的事情。

为了在CI中进行测试,您现在需要做的只是简单地创建一个git克隆,然后是一个matlab批assertSuccess (runtests)从项目根目录(很可能是你刚克隆的git repo的根目录)。完成了。容易peasy。让我们继续关注CI和开发设置之外的事情。你知道,非常困难和重要的事情,比如“方向统计以及方向流形的递归估计”。

准备好了吗?走吧!




发布与MATLAB®R2020a

|
  • 打印
  • 发送电子邮件

评论

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