我目前正致力於在Project Euler拼圖中實現構建庫。我已經到了構建測試的階段,但是在某個時候我的測試失敗了。一切都可以導入,但是一旦我測試了一個子程序的存在,我新創建的測試就失敗了。我最初啓動了Test :: More,但是爲了簡化我切換到Test :: Simple的事情。每次運行後,即使簡化爲不太複雜的測試功能,我也會得到相同的錯誤輸出。我的代碼中是否存在一些我忽略的錯誤,或者我的系統或環境的某些方面會影響到這一點?構建模塊時測試失敗
注意:除了Test :: Simple和Test :: More文檔外,我還瀏覽了幾次Test :: Tutorial。我還確保查看相關函數的Perl文檔(已定義和存在)。在Ubuntu 14.04上使用Perl 5.18.2。
下面是輸出:面向
t/00-load.t ....... 1/? # Testing EulerUtils 0.01, Perl 5.018002, /usr/bin/perl
t/00-load.t ....... ok
t/Qual.t .......... 1/2
# Failed test 'isEven() exists'
# at t/Qual.t line 8.
# Looks like you failed 1 test of 2.
t/Qual.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests
t/boilerplate.t ... ok
t/manifest.t ...... skipped: Author tests not required for installation
t/pod-coverage.t .. ok
t/pod.t ........... ok
Test Summary Report
-------------------
t/Qual.t (Wstat: 256 Tests: 2 Failed: 1)
Failed test: 2
Non-zero exit status: 1
Files=6, Tests=10, 0 wallclock secs (0.06 usr 0.01 sys + 0.23 cusr 0.04 csys = 0.34 CPU)
Result: FAIL
Failed 1/6 test programs. 1/10 subtests failed.
沒有對象,順便......至少到目前爲止是這樣。我也做了一個虛擬測試,這解釋了2個子測試。
測試本身(更新使圖書館位置明確):
use v5.18.2;
use strict;
use warnings;
use diagnostics;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Test::Simple tests => 1;
use Qual;
ok(defined(&isEven), 'isEven() exists');
從模塊本身,與模塊啓動製成的子程序:
...
sub isEven {
my $n = shift;
return 1 if ($n % 2 == 0);
}
...
讓我知道如果有什麼東西需要。
Qual.pm的頂部怎麼樣?它實際上是出口嗎? (如果你不知道這意味着什麼,你應該閱讀http://p3rl.org/Exporter) – ysth 2014-09-02 00:14:15
是的,我知道這意味着什麼......就是這樣。 -_- – Eugene 2014-09-02 15:18:51