perl脚本来解析来自不同测试位置的日志文件。它采用测试用例的动态路径

时间:2015-03-23 05:34:02

标签: perl

我想要一个perl脚本,它将进入每个测试文件夹并解析其中的日志文件。

例如:

results/testcases/ **?** /test.log

上述路径必须使用**?**标记处的不同测试文件夹名称进行动态更改。

我正在使用此results/testcases/@array/test.log

@array有测试名称

2 个答案:

答案 0 :(得分:0)

我的建议是:

my $path = "results/testcases";
opendir(TEMPDIR,$path) or die "err1";

my @dir = grep -d, readdir TEMPDIR; 

foreach(@dir)
{
    if( $_ !~ /\./ )
    {
    open( my $fileHandle , "results/testcases/".$_."/test.log" ) or die "err2";
    # parsing log file
    close $fileHandle or die "err2-2";
    }
}

close TEMPDIR or die "err1-2";

首先,您需要读取文件夹“results / testcases”以获取当前正确的文件夹名称。其次,你需要逐个打开文件,而不是将@array放在路径的中间。第三,你应该阅读基本的perl,否则你将无法以适当的方式解析。第四,你真的应该阅读HOW TO ASK,你应该输入你的代码,以便我们可以提供更多帮助,你的问题也可以帮助其他人。

答案 1 :(得分:0)

如果您的测试文件夹相对路径存储在@array中。您可以执行以下操作:

my @testlogs = grep { -e $_ } map { "results/testcases/".$_."/test.log" } @array;

新阵列@testlogs现在包含现有' test.log'的路径列表。文件。

然后,您可以像这样解析每个文件:

map { ... parsing call ... } @testlogs;