开发区域

使用MATLAB先进的软件开发

测试更多的项目

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

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

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

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

然后将提示您输入存储库:

并确认项目的名称:

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

(pathstr, ~, ~) = fileparts (mfilename (' fullpath '));AddPath(GenPath([Pathstr'/ lib']))clembarspathstr

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

请注意,一旦设置项目,就可以轻松将其转换为工具箱,以分配给只需要的项目的用户使用其实也不需要贡献对此,但我会让你探索作为锻炼。

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

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

关键是这个 - 项目知道如何测试自己。或者他们可能使项目作者能够精确地编码如何测试项目,以便其他人(如同事)和计算机(如CI构建代理)可以简单地问“项目,测试自己!”它是赛道。这只是通过将“测试”标签添加为测试文件的元数据来完成,然后,那就是它!

事实上,你甚至不需要添加一个测试标签,因为该项目在识别出识别测试并为您添加标签时识别出良好的精力。但是,它可能无法为所有测试执行此操作,例如基于脚本的测试或从子类继承的测试matlab.unittest.testcase.,请务必确认所有测试都会适当标记。在这种情况下,默认情况下,项目会做得很好地标记它们。如果要从“标准”项目测试套件中排除一些测试,则可以通过删除标签来执行此操作,如下所示。这可能会在某些情况下派上派上用场,例如当您的一些测试需要很长时间才能执行并且您只想在特殊延迟的测试运行中运行它们。

现在使用您的测试与项目元数据适当标记,您实际上可以直接从项目创建测试套件并运行它。它与导航到项目根源和呼叫一样简单runtests.同样,您可以简单地将项目的根文件夹传递给runtests功能:

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

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

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

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

准备好了吗?走吧!




发布与MATLAB®R2020a

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。