首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExtUtils::MakeMaker条件/实时测试提示

ExtUtils::MakeMaker条件/实时测试提示
EN

Stack Overflow用户
提问于 2014-03-24 12:05:47
回答 2查看 42关注 0票数 0

我不知道如何让ExtUtils::MakeMaker提示用户是否希望在/t中运行需要实时连接的测试子集。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-24 14:14:32

通常,您不希望在最终用户的系统上运行这样的测试。你不能指望它是可靠的,即使它是存在的。但是,如果您真的想这样做,您可以使用提示助手函数和测试节参数来实现这一点,如果您将网络测试放在它自己的目录中:

代码语言:javascript
复制
use ExtUtils::MakeMaker;

…

my $network = prompt("Do you want to run tests requiring network access [y/n]", "n") =~ /y/i;

WriteMakefile(
    ...
    test => {
        TESTS => $network ? 't/*.t t/network/*.t' : 't/*.t'
    }
);
票数 2
EN

Stack Overflow用户

发布于 2014-03-24 14:02:49

我记得在野外看到的一种方法是在默认情况下跳过这些测试,但是打印信息,告诉用户如果应该执行测试,应该设置一个特定的环境变量。

因为测试只是perl代码,所以您可以询问那里的用户并跳过相应的测试。

代码语言:javascript
复制
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw/ say /;
use Term::ReadKey;
use Test::More;

say "Do you want to run tests with live internet connectivity? [y/n]";

my $key = <>;

ok(1, 'first test');

SKIP: {
    skip('you said you dont want to run these', 1) if $key ne 'y';
    ok(1, 'second test, skippable');
}

ok(1, 'third test');

done_testing;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22608943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档