小编kyo*_*oob的帖子

如何将__LINE__中的行号插入到Perl中的测试名称中?

当我尝试这个测试用例时:

$sel->is_text_present_ok("foo", ("$testname: line ", __LINE__));
Run Code Online (Sandbox Code Playgroud)

我想在日志中得到这个:

ok 1 - is_text_present, "foo", Testcase-881: line 54
Run Code Online (Sandbox Code Playgroud)

但我在命令行上受到了谴责:

你将测试命名为'54'.您不应该使用数字作为测试名称.很混乱.

我想我应该以某种方式将该文字插入到字符串中,但我无法深入到它的底部.我用逗号和引号尝试了各种配置.

有没有办法得到我正在寻找的结果?

testing perl interpolation literals

2
推荐指数
1
解决办法
186
查看次数

为什么这个Perl脚本在60秒后不会退出或死亡?

我需要运行一个sc.exe在TeamCity中作为构建过程的一部分调用的应用程序.这个小应用程序打开了通往Sauce Labs的隧道,应用程序本身运行正常.此应用程序的一个功能是当它启动并准备好通过隧道支持Sauce上的测试时,它会输出消息Sauce Connect is up, you may now start your tests. 应用程序需要继续在本地运行以保持隧道打开.

sc.exe在建立连接后不会退出,但我需要构建步骤来发送退出代码,以便它可以知道隧道已启动,我们已准备就绪.我希望Perl脚本exit0离开的sc.exe过程中运行.我在Perl中写了这个小跑者脚本:

#!/user/bin/perl

use strict;
use warnings;

my $result = `sc -v --pac file://browsermob.js -u $ENV{SAUCE_USER_NAME} -k $ENV{SAUCE_API_KEY}`;

for (my $i = 0; $i < 60; $i++) {
    if ($result =~ /Sauce Connect is up, you may start your tests\./) {
        print $result;
        exit 0;
        }
    sleep(1);
    }

die "Did not detect open Sauce Connect tunnel.";
Run Code Online (Sandbox Code Playgroud)

现在,请记住,当我从终端运行它时,反引号中的系统调用确实有效,并且输出来自sc.exe那个情况下的预期.当我运行这个Perl脚本时,隧道确实启动了 …

windows perl multithreading process exit

2
推荐指数
1
解决办法
645
查看次数