Test2::API::Instance - Test2::API 在幕後使用的物件
此物件封裝了 Test2 追蹤的共用全域狀態。此套件的單一全域實例由 Test2::API 套件儲存 (並隱藏)。
沒有理由直接使用此套件。此套件的文件是為了完整性。此套件可能會變更,或隨時完全消失。直接使用或猴子修補此套件在任何方式或形式上都不受支援。
use Test2::API::Instance;
my $obj = Test2::API::Instance->new;
此實例的 PID。
此實例的執行緒 ID。
將物件重設為預設值。
將內部狀態設為已載入,並執行並儲存載入後呼叫回函。
檢查狀態是否設為已載入。
取得載入後呼叫回函。
新增載入後呼叫回函。如果已呼叫 load()
,則呼叫回函會立即執行。如果未呼叫 load()
,則呼叫回函會儲存並在稍後呼叫 load()
時執行。
取得所有使用中脈絡的雜湊參考,其鍵為 hub id。
取得所有脈絡取得呼叫回函。
取得所有脈絡初始化呼叫回函。
取得所有脈絡釋放呼叫回函。
取得所有子測試前呼叫回函。
新增脈絡初始化呼叫回函。每次建立脈絡時,都會呼叫子常式。子常式會將新建立的脈絡作為其唯一引數。
新增脈絡釋放呼叫回函。每次釋放脈絡時,都會呼叫子常式。子常式會將已釋放的脈絡作為其唯一引數。這些呼叫回函不應在脈絡上呼叫 release。
新增一個子測試前呼叫回函。每次執行子測試時都會呼叫子函式。子函式會取得子測試名稱、代碼參考和任何參數。
這預計會在 END { ... }
區塊中呼叫。這將查看測試狀態並設定 $?。這也會呼叫任何結束呼叫回函,並等待子程序/執行緒。
告訴其他程序和執行緒有一個待處理事件。$val
應為其他執行緒/程序不會產生的唯一值。
注意:這也會讓目前程序看到一個待處理事件。
如果無法得知,這會傳回 -1。
如果沒有待處理事件,這會傳回 0。
如果有的待處理事件,這會傳回 1。
在中止子程序和執行緒之前等待的時間長度。
取得 IPC 驅動程式的清單。
將一個 IPC 驅動程式新增到清單中。最近新增的 IPC 驅動程式會在初始化期間成為全域性的。如果在初始化發生後新增驅動程式,將會產生警告。
"IPC driver $driver loaded too late to be used as the global ipc driver"
檢查是否已啟用輪詢。
開啟輪詢。這會在每次建立內容時從其他程序和執行緒中刪除事件。
關閉 IPC 輪詢。
取得/設定 no_wait。此選項用於關閉離開時的程序/執行緒等待。
取得離開回呼。
新增離開回呼。此回呼會由 set_exit()
呼叫。
檢查物件是否已完成。完成會在物件上呼叫 ipc()
、stack()
或 format()
時發生。一旦完成,這些欄位將被視為不可變更(未在此強制執行,由 Test2 強制執行)。
取得唯一的真實 IPC 執行個體。
關閉 IPC
檢查 IPC 是否已停用
取得唯一的真實 hub 堆疊。
取得全域格式化器。預設為 'Test2::Formatter::TAP'
套件。這可以是任何實作 write()
方法的套件。也可以是已實例化的物件。
檢查是否已設定格式化器。
新增格式化器。最近新增的格式化器會在初始化期間成為全域格式化器。如果在初始化之後新增格式化器,將會產生警告
"Formatter $formatter loaded too late to be used as the global formatter"
這允許您提供 UUID 產生器。如果提供,UUID 將附加到所有事件、hub 和內容。這對於儲存、追蹤和連結這些物件很有用。
您提供的子程式應始終傳回唯一的識別碼。大多數情況下會需要正確的 UUID 字串,但 Test2::API 中沒有任何內容會強制執行這一點。
子程式將收到正好 1 個引數,即標記為「內容」、「hub」或「事件」的項目類型。未來可能會標記其他項目,這種情況下會傳入新的字串。這些純粹是提供資訊,您可以(通常也應該)忽略它們。
Test2 的原始碼存放庫可在 http://github.com/Test-More/test-more/ 找到。
版權所有 2020 Chad Granum <exodist@cpan.org>。
這個程式是免費軟體;您可以在與 Perl 相同的條款下重新散布或修改它。
請參閱 http://dev.perl.org/licenses/