gpt4 book ai didi

围绕生产脚本的 Perl 测试包装器

转载 作者:行者123 更新时间:2023-11-28 20:43:26 24 4
gpt4 key购买 nike

出于测试目的,我想创建一个包装脚本,它可以在不更改原始脚本的情况下向现有脚本添加功能。我的问题是,这在 perl 中可行吗?我该怎么做?

包装器脚本会做这样的事情:

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use Aspect;

run syntax checking on config files;
run unittesting stuff;
call production script;

生产脚本将保持不变并且完全独立:

#!/usr/bin/perl
use strict;
use warnings;

bunch of production code here;

当然,我希望诊断和方面编织能够在生产代码上运行。我已经尝试了一些简单的事情,但它们没有用,代码甚至没有运行。

eval { require "production.pl" };
do 'production.pl';
require 'production.pl';

最佳答案

我会使用 Test::Script::Run .这些 block 可帮助您分离测试用例。

您可以通过这种方式调用您的程序来获取诊断消息:

perl -Mdiagnostics -MAspect your_script.pl [args]

这就是您如何集成此测试的方法:

use Test::More;
use Test::Script::Run;
### test 1
{
note 'test1 is running...';
note 'test 1 app_name running fine';
run_ok( 'app_name', [ app's args ], 'app_name runs ok' );
note 'test 1 does not throws errors and returns correct values';
my ( $return, $stdout, $stderr ) = run_script( 'app_name', [ app's args ] );
run_output_matches_unordered(
'app_name', [ app's args ],
[ 'out line 2', 'out line 1' ],
[ 'err line 2', 'err line 1' ],
'run_output_matches_unordered'
);

};
### test 2
{
...
};
done_testing();

关于围绕生产脚本的 Perl 测试包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com