【发布时间】:2018-08-22 19:22:23
【问题描述】:
我想在 perl .cgi 中测试一个小程序
这个程序在这个网址:
https://perlmaven.com/testing-perl-cgi
这个程序是一个通用测试,他说:
“展示如何测试任何 CGI 脚本就足够了”
然后我将 2 个 cgi 复制/粘贴到同一目录中并尝试命令行:
prove cgi.t
通常都成功
错误是:
Failed test 'GET'
# at cgi.t line 20.
# ''
# doesn't match '(?^:<tr><td>request_method</td><td>GET</td></tr>)'
# Failed test 'name'
# at cgi.t line 21.
# ''
# doesn't match '(?^:<tr><td>name</td><td>foo</td></tr>)'
# Failed test 'email'
# at cgi.t line 22.
# ''
# doesn't match '(?^:<tr><td>email</td><td>bar\@corp.com</td></tr>)'
# Failed test 'stderr is empty'
# at cgi.t line 23.
# got: 'Can't exec "./cgi.pl": Permission denied at cgi.t line 17.
# '
# expected: ''
# Failed test 'exit code is 0'
# at cgi.t line 24.
# got: '-1'
# expected: '0'
# Looks like you failed 5 tests of 5.
cgi.t .. 1/2
# Failed test 'get'
# at cgi.t line 25.
# Failed test 'POST'
# at cgi.t line 43.
# ''
# doesn't match '(?^:<tr><td>request_method</td><td>POST</td></tr>)'
# Failed test 'language'
# at cgi.t line 44.
# ''
# doesn't match '(?^:<tr><td>language</td><td>Perl</td></tr>)'
# Failed test 'creator'
# at cgi.t line 45.
# ''
# doesn't match '(?^:<tr><td>creator</td><td>TimToady</td></tr>)'
# Failed test 'stderr is empty'
# at cgi.t line 46.
# got: 'sh: ./cgi.pl: Permission denied
# '
# expected: ''
# Failed test 'exit code is 0'
# at cgi.t line 47.
# got: '32256'
# expected: '0'
# Looks like you failed 5 tests of 5.
# Failed test 'post'
# at cgi.t line 48.
# Looks like you failed 2 tests of 2.
cgi.t .. Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests
Test Summary Report
-------------------
cgi.t (Wstat: 512 Tests: 2 Failed: 2)
Failed tests: 1-2
Non-zero exit status: 2
Files=1, Tests=2, 1 wallclock secs ( 0.12 usr 0.01 sys + 0.44 cusr 0.06 csys = 0.63 CPU)
Result: FAIL
提前致谢,
奥诺特
【问题讨论】:
-
欢迎来到 Stack Overflow。正如詹姆斯所说,如果您直接联系 Gabor,他可能会向您解释。但是,让我们看看我们还能为您做些什么。
-
其中一个失败是因为您的 cgi.pl 文件未标记为可执行文件。
chmod +x cgi.pl应该修复那个。 -
@Shawn 好电话。它不像我想象的那样是Windows。我的错误是不同的。嗯。