有人可以为Perl提供一些好的自动化测试套件框架吗?Perl是否有很好的自动化测试套件?
回答
这实际上取决于你想要做什么,但这里有很多背景。
首先,你一般会写与测试你的测试程序::更多或Test ::简单为核心的测试程序:
use Test::More tests => 2;
is 3, 3, 'basic equality should work';
ok !0, '... and zero should be false';
内部,测试::生成器被称为输出的测试结果TAP(Test Anything Protocol)。 Test :: Harness(TAP :: Harness周围的薄包装)读取并解释TAP,告诉您测试是否通过。上面提到的“证明”工具与Test :: Harness捆绑在一起,所以假设将上面的t /目录(标准的Perl测试目录)保存为“数字”。T”,那么你可以用这个命令来运行它:
prove --verbose t/numbers.t
或者在该目录中运行所有测试(递归,假设你要访问子目录):
prove --verbose -r t/
(--verbose当然,是可选的)。
作为一个侧面说明,不要用TestUnit。许多人推荐它,但它是一个很久以前抛弃,不与现代测试工具集成。
我会去测试::更多,或在一般情况下,任何输出TAP
截至目前,我们使用测试::更多,但目前的问题是,我们必须手动运行所有测试文件供测试用。我正在寻找的是更多的自动化框架,可以做增量测试/内部检查等。
Test ::更多的包装将是理想的,但任何更好,更实用也可以。
我正在浏览PerlUnit,看看是否有帮助。
如果我理解你正确地你正在寻找TAP::Harness
如果您使用ExtUtils::MakeMaker或Module::Build,那么你可以运行所有测试自动通过输入命令“做试验”或“生成测试”,这将在您的项目的t /子文件夹中执行任何* .t文件。
如果您不使用其中之一,那么您可以使用TAP::Harness来自动执行多个测试脚本。
要实际编写测试,请使用Test::More或其他人在此处提出的任何模块。
您是否知道“证明”实用程序(来自App :: Prove)?你可以告诉它在一个给定的目录中递归地运行所有的测试,有或没有详细的等等。
我个人喜欢Test :: Most,它基本上是Test :: More,并且增加了一些很酷的功能。
只要你使用的是生产TAP测试(测试任何协议)输出你会发现这是有用的:http://sourceforge.net/projects/smolder
退房CPAN Testers,其中有很多的自动化测试工具。大部分应该在CPAN上,以便您可以对其进行修改以满足您的需求。使用TAP :: Harness编写自己的测试仪也很容易。
你到底需要做什么以及如何将它融入到你的过程中?
我们必须手动运行所有测试文件 测试
你一定要使用证明(运行测试)和/或模块::生成(建立你的代码,然后运行使用你的测试相同的测试用具代码,其证明在内部使用。)
对于perl中的自动化测试,请看Test::Harness,其中包含prove
工具。
的prove
工具可以用下面的命令被执行:
prove -r -Ilib t
这将recursivly测试所有* .T文件在“吨/”目录,同时加入lib
到包括路径。
-l是-Ilib的缩写 - – Schwern 2008-10-18 07:09:41
选择的测试套件框架是Test::Harness,这需要控制测试运行,收集结果的护理等
各种模块存在,以提供某些类型的测试,其中最常见的,可以发现在Test::Simple和Test::More(均包含在Test-Simple发行版中)。 CPAN上的整个Test名称空间专用于专门的单元测试模块,其中大部分都设计为在Test :: Harness下运行。
按照惯例,测试存储在项目的t /目录中,并且每个测试文件使用文件扩展名.t;测试通过
通常运行prove t/*.t
模块分布通常包括命名为“测试”一个make目标运行安装前测试套件。默认情况下,CPAN安装过程要求在安装模块之前测试通过。
你见过smolder?
“开发人员和测试人员使用Smoke Test Aggregator上传(自动或手动)并使用Test Anything Protocol查看烟雾/回归测试,并通过电子邮件或Atom feeds提供详细信息和趋势图。
这很好,但Smolder似乎没有正确解析TAP存档。 – 2013-01-25 16:06:08
你说:
“我所寻找的是一个更加自动化框架,它可以做增量测试/构建支票等”
还没完全确定你以后。正如其他人所提到的,你想看看基于Test :: Harness/TAP的事情。绝大多数Perl测试社区都使用这个框架 - 所以你可以通过使用它来获得更多的支持(以及有用的现有代码)。
你可以多谈一谈“增量测试/构建检查”的含义吗?
我在猜测你想把你的测试分成几组,以便你在某些情况下只运行某些测试集?
有几种方法可以做到这一点。最简单的是只使用文件系统 - 分裂测试的目录,所以你有喜欢的东西:
core/ database.t infrastructure.t style/ percritic.t ui/ something.t something-else.t
等等......那么你可以使用命令行“证明”工具来运行它们所有,或只有某些目录等。
证明有很多有用的选项,让您选择哪些测试运行和以哪种顺序(例如最近最近失败的顺序)。这一切 - 本身 - 可能会让你走向你所需要的。 (从CPAN获得Test :: Simple/prove/etc的最新版本很重要,最近的版本有更多的功能)。
如果您是面向对象思维的人,或者有过xUnit框架的经验,那么您可能需要查看Test :: Class,它是一个构建在TAP/Test之上的Perl xUnit框架: :线束层。我认为这是比PerlUnit好了不少 - 但我要说的是,因为我写的:-)
退房美味对测试::类http://delicious.com/tag/Test::Class
一些更多的信息。如果这不是你之后 - 你可以详细了解你想要的功能吗?
干杯,
阿德里安
- 1. MFC是否有很好的自动化测试工具?
- 2. Perl自动化文件测试
- 3. Perl的测试套件API
- 4. 是否有任何自动化测试数据生成器的好处?
- 5. 有关于可可触摸自动化UI测试的很好的教程吗?
- 6. 使用Perl测试自动化
- 7. Flex UI自动化测试的好处?
- 8. 基准测试是否有很好的学术参考?
- 9. 对于笑话测试用例是否有很好的报告?
- 10. .NET是否有一个很好的http级别测试框架?
- 11. 是否有可能跳过HSpec测试套件中的测试?
- 12. 是否有延迟QUnit测试套件启动的方法?
- 13. Geb(自动化测试框架)是一个很好的验收测试框架吗?
- 14. 什么是GWT最好的自动化Web测试工具?
- 15. 什么是最好的Selenium工具来自动化测试?
- 16. 什么是好的测试自动化框架?
- 17. 什么是RSpec良好的自动化测试平台?
- 18. Perl中是否有很好的定时器实现?
- 19. Perl代码是否有很好的混淆器?
- 20. 嵌套软件包的自动测试
- 21. 是否可以在Perl项目中使用自动测试?
- 22. Perl中的关键字驱动的测试自动化框架
- 23. 测试自动化
- 24. 自动化测试
- 25. 是否有RPG的自动验收测试软件或工具?
- 26. 编码UI自动化测试套件的代码覆盖
- 27. 这是一个很好的书面测试还是很难看?
- 28. 增强测试套件是否存在?
- 29. 是否有PDF文件的测试套件?
- 30. 是否有单位测试的完整性的一个很好的措施
请不要使用PerlUnit。它被遗弃了。如果您必须具有xUnit样式框架,请参见Test::Class。它被积极维护并与Perl的标准测试框架集成。 – Ovid 2008-09-16 11:44:18