Test::Harness - 執行 Perl 標準測試腳本並提供統計資料
版本 3.44
use Test::Harness;
runtests(@test_files);
儘管出於歷史原因,Test::Harness 發行版的名稱來自於這個模組,但它現在只存在於為 TAP::Harness 提供與 Test::Harness 2.xx 有點向後相容的介面。如果您正在撰寫新程式碼,請考慮直接使用 TAP::Harness。
runtests
和 execute_tests
提供了模擬,但 Test::Harness 以前的版本支援的可插入式「Straps」介面在此處未重現。Straps 現在可作為一個獨立模組:Test::Harness::Straps。
請參閱 TAP::Parser、TAP::Harness 以取得此發行版的說明文件。
以下函數可用。
這會執行所有給定的 @test_files,並根據它們輸出到 STDOUT 的結果來判斷它們是否通過或失敗(詳情見上)。它會列印出每個失敗的個別測試,以及摘要報告和執行所有測試所花費的時間。
如果一切都正常,它會傳回 true。否則,它會使用 DIAGNOSTICS 區段中的其中一個訊息來 die()
。
執行所有給定的 @test_files
(就像 runtests()
),但不會產生最終報告。在測試期間,進度資訊會寫入目前選定的輸出檔案處理常式(通常為 STDOUT
),或寫入由 out
參數指定的檔案處理常式。out 是可選的。
傳回一個包含兩個值的清單,$total
和 $failed
,描述結果。$total
是執行所有測試的雜湊參考摘要。它的鍵和值如下
bonus Number of individual todo tests unexpectedly passed
max Number of individual tests ran
ok Number of individual tests passed
sub_skipped Number of individual tests skipped
todo Number of individual todo tests
files Number of test files ran
good Number of test files passed
bad Number of test files failed
tests Number of test files originally given
skipped Number of test files skipped
如果 $total->{bad} == 0
且 $total->{max} > 0
,表示測試成功。
$failed
是所有失敗的測試指令碼的雜湊參考。每個鍵都是測試指令碼的名稱,每個值都是另一個表示該指令碼如何失敗的雜湊。它的鍵如下
name Name of the test which failed
estat Script's exit value
wstat Script's wait status
max Number of individual tests
failed Number which failed
canon List of tests which failed (as string).
如果一切都通過,$failed
應該是空的。
&runtests
預設由 Test::Harness
匯出。
&execute_tests
、$verbose
、$switches
和 $debug
會在要求時匯出。
Test::Harness
在執行個別測試之前會設定這些變數。
HARNESS_ACTIVE
這會設定為 true 值。它允許測試判斷它們是透過測試框架執行,還是透過任何其他方式執行。
HARNESS_VERSION
這是 Test::Harness
的版本。
HARNESS_PERL_SWITCHES
設定此項會在每個測試檔案執行時新增 perl 命令列開關。
例如,HARNESS_PERL_SWITCHES=-T
會開啟污染模式。HARNESS_PERL_SWITCHES=-MDevel::Cover
會在每個測試執行 Devel::Cover
。
-w
永遠是設定的。您可以在測試中使用 BEGIN { $^W = 0 }
關閉此項。
HARNESS_TIMER
將此項設定為 true,測試工具會顯示每個測試所花費的毫秒數。您也可以使用 prove 的 --timer
開關。
HARNESS_VERBOSE
如果為 true,Test::Harness
會輸出執行測試的詳細結果。設定 $Test::Harness::verbose
會覆寫此項,或者您可以在 prove 程式中使用 -v
開關。
HARNESS_OPTIONS
提供測試工具其他選項。目前支援的選項為
j<n>
執行 <n> (預設 9) 個平行工作。
c
嘗試為輸出加上色彩。請參閱 "TAP::Formatter::Base 中的 new"。
a<file.tgz>
會使用 TAP::Harness::Archive 作為測試工具類別,並將 TAP 儲存到 file.tgz
fPackage-With-Dashes
設定正在執行的測試工具的 formatter_class。由於 HARNESS_OPTIONS
是以 :
分隔,因此我們使用 -
取代。
多個選項可以用冒號分隔
HARNESS_OPTIONS=j9:c make test
HARNESS_SUBCLASS
指定要使用 TAP::Harness 子類別取代 TAP::Harness。
HARNESS_SUMMARY_COLOR_SUCCESS
如果成功,決定摘要的 Term::ANSIColor。此色彩預設為 'green'
。
HARNESS_SUMMARY_COLOR_FAIL
如果失敗,決定摘要的 Term::ANSIColor。此色彩預設為 'red'
。
通常,當 Perl 程式在污染模式下執行時,PERL5LIB
環境變數的內容不會出現在 @INC
中。
由於 PERL5LIB
常在測試期間用於將建置目錄新增至 @INC
,Test::Harness
會將在 PERL5LIB
中找到的任何目錄名稱傳遞為 -I 參數。其最終結果是,即使在污染模式下,PERL5LIB
仍會受到重視。
請將任何錯誤或功能要求回報至 bug-test-harness at rt.cpan.org
,或透過 http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Harness 上的網路介面。我將收到通知,然後當我進行變更時,您會自動收到錯誤進度的通知。
Andy Armstrong <andy@hexten.net>
Test::Harness 2.64(由 Andy Lester 維護,且此模組以此為基礎)具有下列屬性
Either Tim Bunce or Andreas Koenig, we don't know. What we know for
sure is, that it was inspired by Larry Wall's F<TEST> script that came
with perl distributions for ages. Numerous anonymous contributors
exist. Andreas Koenig held the torch for many years, and then
Michael G Schwern.
著作權所有 (c) 2007-2011,Andy Armstrong <andy@hexten.net>
。保留所有權利。
此模組為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。請參閱 perlartistic。