有Perl好的自动测试套件吗?
有人可以为Perl建议一些好的自动化测试套件框架吗?
解决方案
回答
我去测试::更多,或者一般来说,任何输出TAP的东西
回答
到目前为止,我们使用Test :: More,但当前的问题是我们必须手动运行所有测试文件以进行测试。我正在寻找的是更多的自动化框架,可以进行增量测试/构建检查等。
围绕Test ::的包装是比较理想的,但是任何更好,更实用的东西也都可以。
我正在通过PerlUnit来查看是否有帮助。
回答
如果我对理解正确,那么我们正在寻找TAP :: Harness
回答
如果我们使用的是ExtUtils :: MakeMaker或者Module :: Build,则可以通过输入命令" make test"或者" Build test"自动运行所有测试,这将在项目的t /中执行任何* .t文件。子文件夹。
如果我们没有使用任何一种,则可以使用TAP :: Harness自动执行多个测试脚本。
要实际编写测试,请使用Test :: More或者其他人在此处建议的任何模块。
回答
我们是否知道"证明"实用程序(来自App :: Prove)?我们可以告诉它在给定目录中递归地运行所有测试,无论是否冗长,等等。
回答
就个人而言,我喜欢Test :: Most,基本上它是Test :: More,其中包括一些很酷的功能。
回答
只要我们使用产生TAP(任何测试协议)输出的测试,我们可能会发现它很有用:http://sourceforge.net/projects/smolder
回答
查看CPAN测试仪,其中有很多用于自动化测试的工具。大多数应该在CPAN上,这样我们就可以对其进行修改以满足需求。使用TAP :: Harness编写自己的测试器也非常容易。
我们究竟需要做什么,以及如何将其适应流程?
回答
这实际上取决于我们要尝试执行的操作,但是其中的大部分背景是一些。
首先,通常会使用Test :: More或者Test :: Simple作为核心测试程序来编写测试程序:
use Test::More tests => 2; is 3, 3, 'basic equality should work'; ok !0, '... and zero should be false';
在内部,将调用Test :: Builder以将那些测试结果输出为TAP(任何测试协议)。 Test :: Harness(围绕TAP :: Harness的薄包装),读取和解释TAP,并告诉我们测试是否通过或者失败。上面提到的"证明"工具与Test :: Harness捆绑在一起,因此,可以将上面的代码保存在t /目录(标准Perl测试目录)中作为" numbers.t",然后可以使用以下命令运行它:
prove --verbose t/numbers.t
或者运行该目录中的所有测试(递归地,假设我们想进入子目录):
prove --verbose -r t/
(--verbose当然是可选的)。
附带说明,请勿使用TestUnit。许多人推荐它,但是很久以前就放弃了它,并且不与现代测试工具集成。
回答
we have to run all the test files manually for testing
我们当然想使用证明(运行测试)和/或者Module :: Build(生成代码,然后使用内部证明使用相同的测试工具代码来运行测试。)
回答
要在perl中进行自动化测试,请查看Test :: Harness,其中包含" prove"工具。
可以使用以下命令来执行prove
工具:
prove -r -Ilib t
这将递归地测试" t /"目录中的所有* .t文件,同时在包含路径中添加" lib"。
回答
选择的测试套件框架是Test :: Harness,它负责控制测试运行,收集结果等。
存在各种提供某些种类的测试的模块,其中最常见的模块可以在Test :: Simple和Test :: More中找到(两者都包含在Test-Simple发行版中)。 CPAN上的整个Test名称空间专用于专用的单元测试模块,其中的大多数模块旨在在Test :: Harness下运行。
按照惯例,测试存储在项目的t /目录中,并且每个测试文件都使用文件扩展名.t;测试通常通过
prove t/*.t
模块发行版通常包含一个名为" test"的make目标,该目标在安装之前运行测试套件。默认情况下,CPAN安装过程要求测试在构建之后通过,然后才能安装模块。
回答
你见过闷烧吗?
"开发人员和测试人员使用烟雾测试聚合器(使用自动测试协议)上载(自动或者手动)并查看烟雾/回归测试。详细信息和趋势以图表显示,并通过电子邮件或者Atom提要提供通知。
回答
你说:
"What I am looking for is a more of automated framework which can do incremental testing/build checks etc"
仍然不确定要做什么。正如其他人提到的那样,我们想看看基于Test :: Harness / TAP的东西。 Perl测试社区中的绝大多数使用该框架,因此我们将通过使用该框架获得更多支持(以及有用的现有代码)。
我们能否谈谈"增量测试/构建检查"的含义?
我猜想我们要将测试分为几组,以便仅在某些情况下运行某些测试集?
有两种方法可以做到这一点。最简单的方法是仅使用文件系统将测试目录分开,这样我们就可以得到:
core/ database.t infrastructure.t style/ percritic.t ui/ something.t something-else.t
依此类推...然后,我们可以使用命令行"证明"工具来全部运行它们,或者仅运行某些目录,等等。
证明有很多有用的选项,可让我们选择要运行的测试和运行的顺序(例如,最近失败的订单)。所有这些本身可能会使我们达到需求。
(顺便说一句,从CPAN获取Test :: Simple / prove / etc。的最新版本很重要。最新版本具有更多得多的功能)。
如果我们是OO思维型的人,或者曾经使用过xUnit框架,那么我们可能想看看Test :: Class,它是一个基于TAP / Test :: Harness层的Perl xUnit框架。我认为它比PerlUnit好很多,但是自从我写它以来我就这么说:-)
看看美味的有关Test :: Class的更多信息http://delicious.com/tag/Test::Class
如果这不是我们要追求的目标,那么我们可以进一步详细了解想要的功能吗?
干杯,
阿德里安