加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl测试脚本可以检测它是否从并行线束运行?

发布时间:2020-12-15 21:45:21 所属栏目:大数据 来源:网络整理
导读:问题是: Manipulating external state in a test file reduces the possible parallelism of your test suite. 我正在测试的是精确操纵外部状态(然后重置它). 我仍然希望大部分时间并行运行.然后,我想跳过操纵外部状态的测试,这可能会使其他人失败. 因此,我
问题是:

Manipulating external state in a test file reduces the possible parallelism of your test suite.

我正在测试的是精确操纵外部状态(然后重置它).

我仍然希望大部分时间并行运行.然后,我想跳过操纵外部状态的测试,这可能会使其他人失败.

因此,我将通过检测并行性条件来解决此问题,然后跳过将操纵外部状态的测试,从而导致其他人失败.那可行吗?怎么样?

请注意,仅从脚本解析环境变量HARNESS_OPTIONS不足以检测条件:例如,证明-j3不会设置它.

更新

虽然有很多方法可以让你的测试脚本知道它是在并行线束中运行的(参见下面的Brian的答案),但是没有一种标准方法可以做到这一点,我认为可能存在这种方式(但没有说明这一点)正确地进入我的问题).

我想的是,嗯,好吧,我在你的(伟大的!)有效的Perl编程书中看到它,brian,类似于维护者测试,现在不确定这个术语,你通常只有在你运行时才能运行模块的维护者,而不是在用户计算机上安装时.似乎记得有一个使用一些environement变量的惯例.

解决方法

prove命令自己创建测试工具对象,因此它将参数直接传递给测试工具类的构造函数(通常为 TAP::Harness).你没有看到这些论点.

您可以通过以下几种方式前往:

>如果使用-j3,编写一个包装器以证明也设置环境变量.>如果获取jobs参数并在配置中指定子类以进行验证,则使自己的Test :: Harness子类执行相同操作.>不要使用证明(我最喜欢的).>使用测试程序中的信号量来指出另一个测试程序具有控制权>将外部交互部件移动到一个公共库,该库可以告诉其呼叫者是否有人已经拥有控制权>许多其他事情

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读