目錄

名稱

Test::Harness - 執行 Perl 標準測試腳本並提供統計資料

版本

版本 3.44

摘要

use Test::Harness;

runtests(@test_files);

說明

儘管出於歷史原因,Test::Harness 發行版的名稱來自於這個模組,但它現在只存在於為 TAP::Harness 提供與 Test::Harness 2.xx 有點向後相容的介面。如果您正在撰寫新程式碼,請考慮直接使用 TAP::Harness

runtestsexecute_tests 提供了模擬,但 Test::Harness 以前的版本支援的可插入式「Straps」介面在此處未重現。Straps 現在可作為一個獨立模組:Test::Harness::Straps

請參閱 TAP::ParserTAP::Harness 以取得此發行版的說明文件。

函數

以下函數可用。

runtests( @test_files )

這會執行所有給定的 @test_files,並根據它們輸出到 STDOUT 的結果來判斷它們是否通過或失敗(詳情見上)。它會列印出每個失敗的個別測試,以及摘要報告和執行所有測試所花費的時間。

如果一切都正常,它會傳回 true。否則,它會使用 DIAGNOSTICS 區段中的其中一個訊息來 die()

execute_tests( tests => \@test_files, out => \*FH )

執行所有給定的 @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 應該是空的。

EXPORT

&runtests 預設由 Test::Harness 匯出。

&execute_tests$verbose$switches$debug 會在要求時匯出。

TAP::HARNESS::COMPATIBLE 設定的環境變數

Test::Harness 在執行個別測試之前會設定這些變數。

HARNESS_ACTIVE

這會設定為 true 值。它允許測試判斷它們是透過測試框架執行,還是透過任何其他方式執行。

HARNESS_VERSION

這是 Test::Harness 的版本。

影響 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 常在測試期間用於將建置目錄新增至 @INCTest::Harness 會將在 PERL5LIB 中找到的任何目錄名稱傳遞為 -I 參數。其最終結果是,即使在污染模式下,PERL5LIB 仍會受到重視。

另請參閱

TAP::Harness

錯誤

請將任何錯誤或功能要求回報至 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