问题标签 [tap-harness]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

perl - 在 Windows 上构建 TAP::Formatter::HTML 时遇到问题

我的cpanTAP::Formatter::HTML安装挂起,01_basic.t我不知道为什么:

为了更好地理解这个问题的根本原因,我修改了测试以包含一些prints 并独立运行它:

这也挂起:

似乎挂起的语句是STDOUT->fdopen( fileno($stdout_fh), 'w' )

为什么会发生这种情况,我怎样才能让模块安装在我的设置中?


PS,内容FileTempTFH

我的perl -V详细信息:

0 投票
1 回答
135 浏览

perl - 从 TAP::Harness 获取聚合 TAP 输出的单个结果

我正在通过 TAP::Harness 运行一些测试,现在我正试图从 TAP 解析器中获取所有单独的结果。我要做的是首先运行测试:

这很好用。然后我尝试按照 TAP::Parser 文档获取结果:

但是,这会导致@results为空数组。

如果我Dumper是单个 Parser 对象,我可以看到它们已经成功解析了测试结果:

我不知道如何从对象中获取测试结果。

0 投票
1 回答
117 浏览

perl - 混合 TAP::Harness 构造函数参数时遇到问题

看起来有些TAP::Harness(v3.23)构造函数参数不喜欢一起玩。

当我尝试将formatterarg 与verbositycolorargs 一起指定时,模块会抱怨后两者无法识别。当我将其注释掉时,它工作得很好。难道我做错了什么?

输出formatter指定 arg):

0 投票
1 回答
1592 浏览

perl - TAP中的等待状态有什么意义?

这是一个比其他任何问题都更符合我理解的问题。我过去Test::More常常通过TAP::Harness.

当测试运行时,它会返回一个退出代码和一个等待代码。

Test::More 根据文档,退出代码旨在在失败时返回非零值。

但是等待代码意味着什么?对于我正在运行的测试,它似乎是失败测试数 (256 * n) 的倍数。

我的猜测是该协议试图模拟 Unix 上的父子进程关系,但我对等待代码一无所知。

0 投票
0 回答
70 浏览

perl - 指定 TAP:harness 全局参数

我正在使用 TAP::harness (和新的)编写几个测试以在 Jenkins 下运行。在编写这些测试的过程中,我希望最初能够从命令行运行并指定一些附加参数。

例如,其中一项测试将安装我们的项目。这是一个相当漫长的过程,我希望能够跳过此安装测试(以及稍后的卸载测试),以便更快地运行干预测试。

为此,我设置了初始 Perl 测试脚本以接受选项(通过 GetOptions)并将其放入全局(我们的 $noInstall)。初始测试脚本中的打印显示 $noInstall 已设置,但当测试运行时,$noInstall 未定义。

在测试中:

测试输出显示 $noInstall 未定义。

我尝试了各种变体,例如引用 $main::noInstall 但无济于事。关于如何做到这一点的任何建议?谢谢。

0 投票
2 回答
398 浏览

perl - 使用 TAP::Harness 处理测试,如何在测试退出时打印输出

我整天都在努力寻找答案,但我什么也没找到。我使用test::more (test1.t, test2.t, test3.t ...) 编写了一些测试。我编写了一个主 perl 脚本 (main.pl),它使用TAP::Harness处理所有测试,并使用formatter_class => 'TAP::Formatter::JUnit以 JUnit 格式打印输出。在我的测试中,我使用了 BAIL_OUT 函数。问题是当测试被保释时,主脚本也退出并且根本没有输出。例如,如果 test3.t bailed_out,我需要查看 test1.t 和 test2.t 的结果。我怎样才能做到这一点?

我不能使用 exit 或 die 而不是 BAIL_OUT,因为我不希望其他测试继续进行。(如果 test3.t 是 BAIL_OUT 我不希望 test4.t 运行。)

有人可以帮帮我吗?我需要查看在救助测试之前运行的测试的结果。

谢谢。

0 投票
0 回答
80 浏览

perl - perl 脚本在使用 TAP::Harness::JUnit 创建 Junit xml 之前卡住

我真的需要你的帮助。

我有一个使用 TAP::Harness::JUnit 运行我的测试的主脚本。通常所有测试都会运行并且 xml 会成功创建。但是当我尝试使用大输出数据运行某个测试(称为 big_test)时,在测试完成运行后(大约需要一个小时),我的 main.t 脚本被卡住并且永远不会创建 xmlfile。

在 main.t 我定义:

有人有建议吗?谢谢

0 投票
1 回答
368 浏览

perl - Perl 测试工具中的超时测试

我如何让 Perl 测试工具中的挂起测试超时?

我尝试使用该Test::Timer模块,但我似乎无法使其与该模块很好地链接TAP::Harness,以便为每个测试提供嵌入式超时功能。另外,我不想测试一些代码是否需要x时间来完成,我只想运行我的测试并超时,以防它们因任何原因挂起。

0 投票
1 回答
640 浏览

perl - TAP::利用 TAP::Formatter::JUnit 的 TAP::Harness 计时问题

我有一组为 Jenkins 生成 JUnit 输出的脚本。

我执行的代码看起来像这样(这只是一个片段,所以你明白了):

当我用解释器运行它时,我得到以下输出:

这里的主要问题是 JUnit 输出似乎弄错了时间。根据 sleep(2) 指令,它应该报告 2s。

有没有办法让 JUnit 文件中的时间正确?

0 投票
0 回答
1226 浏览

perl - 尽管脚本在本地控制台中刷新,但 Jenkins 控制台输出未逐行刷新

我将 Jenkins 与 Perl TAP::Harness::JUnit 与多个测试脚本一起使用。在一个测试脚本完成之前,我无法让 Jenkins 刷新到控制台。它只是缓冲整个测试套件,并在完成后立即将其全部刷新。我得到如下实例:

  • 11:56:19 1..2
  • 11:56:19 好的 1 - 测试 1
  • 11:56:19 实际时间: 11:55:59 : 现在睡 20 秒...
  • 11:56:19 实际时间:11:56:19
  • 11:56:19 好的 2 - 测试 2

我已经花了两个星期的时间,我知道所有正常的解决方案,但它们似乎都不起作用。我已经merge => 1在我的 perl TAP::Harness::JUnit 中进行了设置,并且我知道 STDOUT 与 STDERR 交织在一起,但是我尝试了各种冲​​洗方式,但在 Jenkins 控制台输出上没有任何效果。

请注意,如果我在机器的命令行中尝试相同的线束,一切都会立即刷新。我试过,,,,,stdbuf -i0 -o0 -e0打印到文件stdbuf -oL -eL。没有任何效果$|=1autoflush STDOUT 1CMD 1>console.log 2>&1

这在进行性能指标时很烦人,因为我无法将某时某时 CPU 上的高压与特定测试的时间戳相关联,因为时间戳毫无意义。然而,最烦人的暗示是,当测试在测试脚本中途挂起或崩溃时,没有输出任何输出,所以我不知道为什么测试会崩溃。