只想下载一个模块:
sudo cpan HTTP::SimpleLinkChecker
但是在查看输出时,返回了错误。
t/200.t ............ Link is http://blogs.perl.org/
t/200.t ............ 1/? Link is https://www.perl.org/
t/200.t ............ ok
t/403.t ............ Link is http://www.pair.com/comdog/cgi-bin/403.cgi
t/403.t ............ 1/1
# Failed test 'Unauthorized code works'
# at t/403.t line 9.
# got: '200'
# expected: '403'
但是Unauthorized code works
是什么意思?即使我使用sudo
特权也是如此。
第二个问题,在测试中,什么能告诉我-> t/200.t
或t/200.t
?点的尽头是一些链接,但是如何连接在一起?
此外,cpanm
建议我使用--force
选项进行安装,这意味着忽略测试,但是如果这样做,后果是什么?这是否意味着模块已损坏?这样使用时会破坏我自己的脚本吗?
答案 0 :(得分:3)
*.t
是Perl运行的实际测试文件,未经授权的代码工作之类的名称是单独的测试(方法)。最后的输出(例如“ Link is ...”)只是测试打印到stderr
上的内容。
HTTP :: SimpleLinkChecker的源代码在Github上,然后看测试, unit 测试实际上尝试连接到某些服务器(哦,我的...)。该服务器为http://www.pair.com/comdog/cgi-bin/403.cgi。当我wget
时,就像您的测试一样,我也得到了200 OK的HTTP代码,但是该测试预期为403,因此失败了。
最重要的是:报告一个Peran模块的维护者brian d foy的错误(您可以使用上面的Github链接)。
要--force
安装模块由您决定。强制意味着忽略失败的测试并继续安装。这可能只是一次无害的单元测试失败,但是如果其他测试以不同的方式失败,我会感到怀疑。