Perl Test::Unit::Lite

本文介绍了轻量级测试框架Test::Unit::Lite的使用方法,包括如何编写测试模块、运行测试及使用不同运行器进行测试。通过实际代码示例,展示了如何在Perl环境中配置并执行测试,以及使用TestRunner和HarnessUnit进行测试运行,并提供了运行结果的解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找了半天,终于找到一个轻量级测试框架Test::Unit::Lite,这个框架只有一个文件,不需要依赖其他文件,如果使用其他测试框架需要下载很多其他依赖模块,如果是手动下载的话基本是mission impossible。


说说它的使用:

首先写一个测试模块,所有的test case 都必须以test_ 开头,运行的时候并不按照编写顺序运行,而是按照字母排列顺序运行,这是和Perl 本身的存储相关的。

package ATest;

use Test::Unit::Lite;
use base 'Test::Unit::TestCase';

sub set_up{
	print "Begin test\n";
}

sub tear_down{
	print "End test\n";
}

sub test_1_two{
	my $self = shift;
	$self->assert_equals('testing','testing');
}

sub test_2_one{
	my $self = shift;
	$self->assert_equals('testing2','testing');
}

1;
接下来可以用TestSuite 包装多个测试模块运行,但是由于这个框架本身还没有很好的完善,运行会出错,我们用最简单的方法TestRunner 来调用。

use Test::Unit::Lite;
my $runner = Test::Unit::TestRunner->new;
$runner->start('ATest');
输出:

.F
Tests run: 2, Failures: 1

FAILURES!!!

------------------------------------------------------------------------------
ATest::test_2_one:

ATest.pm:21 - ATest(test_2_one)
expected 'testinsg', got 'testing'
 at ATest.pm line 21
	ATest::test_2_one('ATest=HASH(0x1a5ac3c)') called at D:/Perl/lib/Test/Unit/Lite.pm line 608
	eval {...} called at D:/Perl/lib/Test/Unit/Lite.pm line 607
	Test::Unit::TestSuite::run('Test::Unit::TestSuite=HASH(0x1a5ac0c)', 'Test::Unit::Result=HASH(0x1a5ab4c)', 'Test::Unit::TestRunner=HASH(0x1a5a68c)') called at D:/Perl/lib/Test/Unit/Lite.pm line 756
	Test::Unit::TestRunner::start('Test::Unit::TestRunner=HASH(0x1a5a68c)', 'ATest') called at D:\Tmp\001.pl line 26

------------------------------------------------------------------------------
还有一种方法是用TestRunner 子类Test::Unit::HarnessUnit 调用,只不过输出的显示不同。

use Test::Unit::Lite;
my $runner = Test::Unit::HarnessUnit->new;
$runner->start('ATest');
输出:

STARTING TEST RUN
1..2
ok PASS ATest::test_1_two
not ok FAILURE ATest::test_2_one
# ATest.pm:21 - ATest(test_2_one)
# expected 'testinsg', got 'testing'
#  at ATest.pm line 21
# 	ATest::test_2_one('ATest=HASH(0x1a32fa4)') called at D:/Perl/lib/Test/Unit/Lite.pm line 608
# 	eval {...} called at D:/Perl/lib/Test/Unit/Lite.pm line 607
# 	Test::Unit::TestSuite::run('Test::Unit::TestSuite=HASH(0x1a5ac2c)', 'Test::Unit::Result=HASH(0x1a5ab6c)', 'Test::Unit::HarnessUnit=HASH(0x1a5a7dc)') called at D:/Perl/lib/Test/Unit/Lite.pm line 756
# 	Test::Unit::TestRunner::start('Test::Unit::HarnessUnit=HASH(0x1a5a7dc)', 'ATest') called at D:\Tmp\001.pl line 26

除此之外,多个测试模块也可以通过命令行运行,把所有测试模块都放到 t/tlib 文件夹下,通过如下命令可以全部运行。

perl -MTest::Unit::Lite -e all_tests

可以自己看看代码,了解一下Unit Test 框架整体是如何运行,尝试去修改完善这个框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值