我正在製作一個模塊,我打算在CPAN上分發這個公共API的客戶端庫。如何測試需要擁有用戶憑據的CPAN包
該API需要API證書(client_id/secret),我不確定最佳實踐是如何針對具有此證書的分發版運行Perl測試。
我是否:
- 創建一個虛擬帳戶的API,希望別人不惹它?
- 嘲笑請求和響應? < - 並不贊成這一點,因爲我不認爲這是一個好主意,嘲笑HTTP事務的API客戶端庫
- 不考...:S
我正在製作一個模塊,我打算在CPAN上分發這個公共API的客戶端庫。如何測試需要擁有用戶憑據的CPAN包
該API需要API證書(client_id/secret),我不確定最佳實踐是如何針對具有此證書的分發版運行Perl測試。
我是否:
有測試預計憑據在環境變量中(或者如果它們很長或很複雜,則是一個配置文件)。如果沒有提供證書,請讓測試發出警告,提供有關使用憑證執行測試的說明。
use Test::More;
unless ($ENV{MY_ID} && $ENV{MY_PWD}) {
BAIL_OUT "*** This module requires credentials. Pass them in the
MY_ID and MY_PWD environment variables, like
MY_ID=username MY_PWD=passwd make test";
}
自動化測試系統(如什麼許多CPANTesters使用)絕不會配置一個模塊是測試之前,所以BAIL_OUT
寄存器上CPAN測試器的測試結果爲「N/A」,而不是一個失敗。
完美!謝謝你讓我知道 :) – a7omiton
我不這麼認爲,對於常見的測試來說這是一個很好的主意,可以由cpan-testers自動運行,也可以在模塊安裝中運行。
我想你應該把你的測試移動到xt
目錄(作者測試),這個目錄只能由你運行。是的,最好的方式來傳輸憑據是通過ENV
,因爲mob建議。
你寫了一些測試嗎?如果沒有,你見過[perl的首選測試框架上的這個問題](http://stackoverflow.com/questions/2876091/what-is-the-preferred-unit-testing-framework-for-perl)? – Kenney