檢視原始碼 通用測試發行說明
Common_Test 1.27.5
修正的錯誤與故障
修正了一個錯誤,該錯誤導致 HTML 日誌中測試案例的執行時間總和有時會計算錯誤,且表格沒有完整列印。
自有 ID:OTP-19284 輔助 ID:ERIERL-1093,PR-8909
Common_Test 1.27.4
修正的錯誤與故障
透過此變更,cth_surefire hook 模組會處理跳過群組的群組路徑縮減。這修正了一個錯誤,該錯誤會在使用跳過群組後執行的群組中顯示不正確的群組路徑。
自有 ID:OTP-19365 輔助 ID:ERIERL-1157,PR-9080
改進和新功能
透過此變更,可以在 cth_conn_log 選項列表中指定 prefix 選項。此選項允許指定在原始日誌輸出中加入多少額外資訊。
Common_Test 1.27.3
修正的錯誤與故障
透過此變更,jquery 和 tablesorter 授權已新增至 COPYRIGHT 檔案。tablesorter 也更新至 2.32 版本。
自有 ID:OTP-19265 輔助 ID:PR-8876
Common_Test 1.27.2
修正的錯誤與故障
透過此變更,HTML 報告包含 jQuery 3.7.1 版本。
自有 ID:OTP-19252 輔助 ID:PR-8858
Common_Test 1.27.1
修正的錯誤與故障
指定群組和測試案例為空列表的群組,不再導致執行當機。
Common_Test 文件和類型規格已進行潤飾。
自有 ID:OTP-19148 輔助 ID:PR-8516
現在
erl
、erlc
、dialyzer
以及 Erlang/OTP 中包含的所有其他程式都提供手冊頁面。自有 ID:OTP-19201 輔助 ID:PR-8740
Common_Test 1.27
改進和新功能
現在呼叫
ct:capture_start/0
和ct:capture_stop/0
是同步的,以確保所有輸出都已擷取。自有 ID:OTP-18658 輔助 ID:PR-7380
現在可以在每個組態函式後反轉執行多個 hook 的順序。請參閱CTH 執行順序。
如果瀏覽器偏好,預設 CSS 現在會包含基本的深色模式處理。
自有 ID:OTP-18761 輔助 ID:PR-7428
已經將
-callback
屬性新增至ct_suite
和ct_hooks
。自有 ID:OTP-18781 輔助 ID:PR-7701
現在可以設定內建的 cth_log_redirect hook,以使用 HTML 日誌取代終端機中的預設記錄器報告。
自有 ID:OTP-18875 輔助 ID:PR-7891
增強了
ct_property_test
框架的錯誤處理。自有 ID:OTP-18881 輔助 ID:PR-7824
增強測試案例文件,清楚說明測試案例如何失敗。
自有 ID:OTP-18892 輔助 ID:PR-7869
現在測試原始碼中失敗的行會以彩色顯示,以便更容易在螢幕上找到。
自有 ID:OTP-18898 輔助 ID:PR-7917
已將函式規格和類型新增至所有公用 API 函式。
自有 ID:OTP-18913
文件已移轉為使用 Markdown 和 ExDoc。
自有 ID:OTP-18955 輔助 ID:PR-8026
現在索引頁面中包含套件執行經過的時間。
Common_Test 1.26.2.3
修正的錯誤與故障
透過此變更,cth_surefire hook 模組會處理跳過群組的群組路徑縮減。這修正了一個錯誤,該錯誤會在使用跳過群組後執行的群組中顯示不正確的群組路徑。
自有 ID:OTP-19365 輔助 ID:ERIERL-1157,PR-9080
Common_Test 1.26.2.2
改進和新功能
透過此變更,可以在 cth_conn_log 選項列表中指定 prefix 選項。此選項允許指定在原始日誌輸出中加入多少額外資訊。
自有 ID:OTP-19293 輔助 ID:ERIERL-1139,PR-8924,PR-8931
Common_Test 1.26.2.1
修正的錯誤與故障
透過此變更,HTML 報告包含 jQuery 3.7.1 版本。
自有 ID:OTP-19252 輔助 ID:PR-8858
透過此變更,jquery 和 tablesorter 授權已新增至 COPYRIGHT 檔案。tablesorter 也更新至 2.32 版本。
自有 ID:OTP-19265 輔助 ID:PR-8876
修正了一個錯誤,該錯誤導致 HTML 日誌中測試案例的執行時間總和有時會計算錯誤,且表格沒有完整列印。
自有 ID:OTP-19284 輔助 ID:ERIERL-1093,PR-8909
Common_Test 1.26.2
修正的錯誤與故障
透過此變更,common_test 測試案例日誌檔案中的最後一欄已修改為現在顯示表格列中每個時間的總和,以及「經過時間」,也就是執行上述函式所花費的時鐘時間。「經過時間」與先前總計的時間相同。
自有 ID:OTP-18960
Common_Test 1.26.1
修正的錯誤與故障
修正 CT 如何尋找 Erlang/OTP 版本以進行相容性測試。此功能僅用於測試 Erlang/OTP。
自有 ID:OTP-18932
Common_Test 1.26
修正的錯誤與故障
透過此變更,當執行定義錯誤的群組的套件時,common_test 會傳回錯誤。
*潛在的不相容性*
自有 ID:OTP-18728 輔助 ID:PR-7487、PR-7674
透過此變更,樣式表選項會套用至所有 HTML 報告頁面。
自有 ID:OTP-18760
將所有 <tt> HTML 標籤更新為 <code>。
自有 ID:OTP-18799 輔助 ID:PR-7695
改進和新功能
此變更修復了文件,因此不再建議使用歷史上已棄用的 ?config 巨集。
自有 ID:OTP-18858 輔助 ID:PR-7825
Common_Test 1.25.1
修正的錯誤與故障
透過此變更,ct_hooks 手冊會參考使用者指南中的 CTH 執行順序章節。
自有 ID:OTP-14480 輔助 ID:ERIERL-43、OTP-11894、PR-7455
透過此變更,在測試案例時間陷阱或連結的程序當機的情況下,來自 pre_end_per_testcase hook 的組態資料會傳遞至 post_end_per_testcase 回呼。
自有 ID:OTP-18579 輔助 ID:GH-7119
透過此變更,會移除 ct_run 中剩餘對不支援的 vts 工具的參考 (主要與文件和 ct_run 說明訊息有關)。
自有 ID:OTP-18615 輔助 ID:PR-7234
透過此變更,ct_telnet 中的提示搜尋功能會處理 Unicode 輸入。
自有 ID:OTP-18664 輔助 ID:ERIERL-959
擴充了有關如何使用
standard_io
、standard_error
和user
I/O 裝置的文件。新增了類型
io:standard_io/0
、io:standard:error/0
和io:user/0
。自有 ID: OTP-18676 輔助 ID: PR-7473 GH-7459
Common_Test 1.25
修正錯誤與故障
此變更改進了 Common Test 文件 (CT 鉤子範例程式碼),並新增了帶有鉤子程式碼的 Emacs 骨架。
自有 ID: OTP-18377 輔助 ID: PR-6437
改進與新功能
更新 common_test 以更穩健的方式獲取舊版本,同時忽略目前版本。
自有 ID: OTP-18259 輔助 ID: PR-5924
- 將 XML
ct
模組文件重寫為 Erlang 類型,使 Dialyzer 能夠捕獲更精確的錯誤自有 ID: OTP-18340
棄用
dbg:stop_clear/0
,因為它只是dbg:stop/0
的函數別名自有 ID: OTP-18478 輔助 ID: GH-6903
Common_Test 1.24.0.5
修正錯誤與故障
透過此變更,cth_surefire hook 模組會處理跳過群組的群組路徑縮減。這修正了一個錯誤,該錯誤會在使用跳過群組後執行的群組中顯示不正確的群組路徑。
自有 ID:OTP-19365 輔助 ID:ERIERL-1157,PR-9080
Common_Test 1.24.0.4
修正錯誤與故障
透過此變更,HTML 報告包含 jQuery 3.7.1 版本。
自有 ID:OTP-19252 輔助 ID:PR-8858
透過此變更,jquery 和 tablesorter 授權已新增至 COPYRIGHT 檔案。tablesorter 也更新至 2.32 版本。
自有 ID:OTP-19265 輔助 ID:PR-8876
修正了一個錯誤,該錯誤導致 HTML 日誌中測試案例的執行時間總和有時會計算錯誤,且表格沒有完整列印。
自有 ID:OTP-19284 輔助 ID:ERIERL-1093,PR-8909
Common_Test 1.24.0.3
修正錯誤與故障
透過此變更,common_test 測試案例日誌檔案中的最後一欄已修改為現在顯示表格列中每個時間的總和,以及「經過時間」,也就是執行上述函式所花費的時鐘時間。「經過時間」與先前總計的時間相同。
自有 ID:OTP-18960
Common_Test 1.24.0.2
修正錯誤與故障
修正 CT 如何尋找 Erlang/OTP 版本以進行相容性測試。此功能僅用於測試 Erlang/OTP。
自有 ID:OTP-18932
Common_Test 1.24.0.1
修正錯誤與故障
透過此變更,ct_telnet 中的提示搜尋功能會處理 Unicode 輸入。
自有 ID:OTP-18664 輔助 ID:ERIERL-959
Common_Test 1.24
改進與新功能
將未記錄的巨集
CT_PEER/3
重新命名為CT_PEER_REL/3
。自有 ID: OTP-18460
Common_Test 1.23.3
修正錯誤與故障
將 cth_log_redirect 中 gen_server 呼叫的逾時時間變更為無限大
自有 ID: OTP-18363 輔助 ID: ERIERL-879
Common_Test 1.23.2
修正錯誤與故障
修正在舊版本上啟動對等節點時,如果編譯伺服器處於活動狀態,且目前的 Erlang 安裝路徑中包含非拉丁 1 字元的問題。
自有 ID: OTP-18255 輔助 ID: PR-6314
Common_Test 1.23.1
修正錯誤與故障
修正 cth_surefire,使其能夠處理未使用
debug_info
編譯的套件。此錯誤自 Erlang/OTP 25.0 起就存在。自有 ID: OTP-18208 輔助 ID: ERIERL-852 PR-6229
改進與新功能
Common Test 現在會保留 throws 的堆疊追蹤。
自有 ID: OTP-18138 輔助 ID: GH-5719, PR-6029
Common_Test 1.23
修正錯誤與故障
修正在執行平行測試案例時,如果同時使用一個或多個 ct 鉤子,會導致鉤子鎖定程序崩潰並在 ct 日誌中產生輸出的錯誤。
自有 ID: OTP-17881 輔助 ID: PR-5581
改進與新功能
為
configure
腳本提供的輸入已調整為autoconf
2.71。自有 ID: OTP-17414 輔助 ID: PR-4967
移除未使用的和未記錄的追蹤器節點功能。
自有 ID: OTP-17676 輔助 ID: PR-5021
新模組
peer
取代了slave
模組。slave
模組現在已被棄用,將在 OTP 27 中移除。peer
包含用於啟動 Erlang 節點的擴充且更穩健的 API。自有 ID: OTP-17720 輔助 ID: PR-5162
cth_surefire ct 鉤子已更新,可在 xml 輸出中包含已執行測試案例的檔案和行號。
對於具有許多測試案例的測試執行,該鉤子的效能也得到了大幅改進。
自有 ID: OTP-17882 輔助 ID: PR-5581
Common_Test 1.22.1.3
修正錯誤與故障
透過此變更,common_test 測試案例日誌檔案中的最後一欄已修改為現在顯示表格列中每個時間的總和,以及「經過時間」,也就是執行上述函式所花費的時鐘時間。「經過時間」與先前總計的時間相同。
自有 ID:OTP-18960
Common_Test 1.22.1.2
修正錯誤與故障
修正 CT 如何尋找 Erlang/OTP 版本以進行相容性測試。此功能僅用於測試 Erlang/OTP。
自有 ID:OTP-18932
Common_Test 1.22.1.1
修正錯誤與故障
將 cth_log_redirect 中 gen_server 呼叫的逾時時間變更為無限大
自有 ID: OTP-18363 輔助 ID: ERIERL-879
Common_Test 1.22.1
修正錯誤與故障
OTP 內部測試修正。
自有 ID: OTP-17888
Common_Test 1.22
改進與新功能
在此變更之前,群組處理語法含糊不清,且群組路徑也不支援測試規範。
自有 ID: OTP-17664 輔助 ID: GH-5088, PR-5242
在此變更之前,無法連結到 Common Test 日誌中的特定標頭條目。此變更在 HTML 測試日誌中新增了靠右對齊的錨點圖示。
自有 ID: OTP-17790 輔助 ID: PR-5375
Common_Test 1.21
改進與新功能
允許浮點數作為 multiply_timetraps 參數。
自有 ID: OTP-17413 輔助 ID: PR-4767
移除舊版 API 巨集和函數的使用。
自有 ID: OTP-17632 輔助 ID: PR-5022
Common_Test 1.20.5
修正錯誤與故障
在呼叫 ct_netconfc:create_subscription/* 之前收到的 NETCONF 通知會導致連線程序因 badarg 而失敗。現在會以與其他意外訊息相同的方式記錄意外通知。
自有 ID: OTP-17506
改進與新功能
新增 'receiver' 選項至 ct_netconfc
允許在建立工作階段時指定傳入 NETCONF 通知的目的地。先前,create_subscription/* 的呼叫者成為目的地,但 RFC 5277 create-subscription 不再是唯一可以排序 NETCONF 通知的方式。
自有 ID: OTP-17509
Common_Test 1.20.4
修正錯誤與故障
已提交產生的
configure
腳本。自有 ID: OTP-17420 輔助 ID: OTP-17398, GH-4821
Common_Test 1.20.3
修正錯誤與故障
當
release_shell
選項與spec
選項一起使用時,可能會崩潰。自有 ID: OTP-16940 輔助 ID: ERL-1335
改進與新功能
已移除實驗性的 HiPE 應用程式,以及其他應用程式中所有相關的功能。
*潛在的不相容性*
自有 ID: OTP-16963
已修正程式碼中符合底線前置變數的警告。
自有 ID: OTP-17385 輔助 ID: OTP-17123
Common_Test 1.20.2.3
修正錯誤與故障
OTP 內部測試修正。
自有 ID: OTP-17888
Common_Test 1.20.2.2
修正錯誤與故障
在呼叫 ct_netconfc:create_subscription/* 之前收到的 NETCONF 通知會導致連線程序因 badarg 而失敗。現在會以與其他意外訊息相同的方式記錄意外通知。
自有 ID: OTP-17506
改進與新功能
新增 'receiver' 選項至 ct_netconfc
允許在建立工作階段時指定傳入 NETCONF 通知的目的地。先前,create_subscription/* 的呼叫者成為目的地,但 RFC 5277 create-subscription 不再是唯一可以排序 NETCONF 通知的方式。
自有 ID: OTP-17509
Common_Test 1.20.2.1
修正錯誤與故障
已提交產生的
configure
腳本。自有 ID: OTP-17420 輔助 ID: OTP-17398, GH-4821
Common_Test 1.20.2
修正錯誤和故障
在此變更之前,如果跳過子群組,則 Config 會在測試群組之間洩漏 (GH-3480)。
自有 ID:OTP-17347 輔助 ID:GH-3480, ERL-1439
Common_Test 1.20.1
修正錯誤和故障
競爭條件可能導致 ctnetconfc:open/ 傳回功能失常的句柄,從而在對其調用其他 API 函數時產生錯誤,並且無法與相關伺服器建立新的連線。在模組 ct_ssh 和 ct_telnet 中使用 open/_ 也可能出現類似的症狀。
在模組 ct_netconfc 和 ct_ssh 中調用 call/* 時,逾時後 common_test 程序的內部訊息可能會留在呼叫者的訊息佇列中。模組 ct_telnet 使用的內部程序可能會因遺失的訊息而洩漏記憶體。
如果與伺服器的 TCP 連線中斷,則對 ct_telnet:open/* 和 ct_telnet:get_data/1 的呼叫可能會無限期地掛起。
自有 ID:OTP-17328 輔助 ID:ERIERL-631
Common_Test 1.20
改進和新功能
各種位址清除器支援。
自有 ID:OTP-16959 輔助 ID:PR-2965
Common_Test 1.19.1
改進和新功能
為測試套件新增行為
自有 ID:OTP-17070
Common_Test 1.19
改進和新功能
當使用者不希望 ct_property_test 編譯屬性時,會新增
ct_property_test:init_tool/1
函數。init_tool/1 可用於設定 property_test_tool 設定值。自有 ID:OTP-16029 輔助 ID:PR-2145
內建的 Common Test Hook,
cth_log_redirect
,已更新為使用系統default
Logger 處理常式的設定,而非其自身的設定。請參閱 Common Test 使用者指南中關於內建 Hook的章節。自有 ID:OTP-16273
舊版舊版 Crypto API中已棄用的函數呼叫會被其替代品的呼叫取代。
自有 ID:OTP-16346
Common_Test 1.18.2.2
修正錯誤和故障
OTP 內部測試修正。
自有 ID: OTP-17888
Common_Test 1.18.2.1
修正錯誤和故障
已提交產生的
configure
腳本。自有 ID: OTP-17420 輔助 ID: OTP-17398, GH-4821
Common_Test 1.18.2
改進和新功能
說明 incl_apps cover 選項
自有 ID:OTP-16039 輔助 ID:ERL-795
ct_property_test
現在具有用於狀態測試結果的報告函數。自有 ID:OTP-16340
不要隱藏使用者的錯誤原因
自有 ID:OTP-16364 輔助 ID:PR-2480
Common_Test 1.18.1
改進和新功能
改進了 ct_property_test 的記錄功能。
自有 ID:OTP-16287
Common_Test 1.18
修正錯誤和故障
如果在測試套件中的
suite/0
函數中安裝了 ct hook,則會多次呼叫 hook 的terminate/1
函數,而不會先呼叫其init/2
函數。現在已修正此問題。自有 ID:OTP-15863 輔助 ID:ERIERL-370
如果
init_per_testcase
失敗,則會跳過測試本身。根據文件,應該可以在 hook 函數中將結果變更為失敗。在這種情況下,唯一可用的 hook 函數是post_init_per_testcase
,但是變更那裡的傳回值不會影響測試案例的結果。現在已修正此問題。自有 ID:OTP-15869 輔助 ID:ERIERL-350
改進和新功能
為 NETCONF 1.1 (RFC 6241) 新增 ct_netconfc 支援。1.1 基礎功能可以發送到 hello,並且當用戶端和伺服器都聲明支援 1.1 時,會套用 RFC 6242 分塊架構。
自有 ID:OTP-15789
更正傳遞給函數 upgrade_init/2、upgrade_upgraded/2 和 upgrade_downgraded/2 中 ct_release_test 回呼模組的 common_tests 不透明資料結構中的 lib_dir 路徑。不正確的路徑可能會在偵錯時造成混淆,儘管它不會導致 common_test 方面有任何不正確的行為,因為目前未使用它。
自有 ID:OTP-15934
Common_Test 1.17.3
修正錯誤和故障
已將所有不正確 (即,所有) 使用 "can not" 的情況更正為原始碼註解、文件、範例等等中的 "cannot"。
自有 ID:OTP-14282 輔助 ID:PR-1891
改進和新功能
使用
ssh
而非rsh
作為預設遠端 Shell。自有 ID:OTP-15633 輔助 ID:PR-1787
Common_Test 1.17.2.1
修正錯誤和故障
如果在測試套件中的
suite/0
函數中安裝了 ct hook,則會多次呼叫 hook 的terminate/1
函數,而不會先呼叫其init/2
函數。現在已修正此問題。自有 ID:OTP-15863 輔助 ID:ERIERL-370
如果
init_per_testcase
失敗,則會跳過測試本身。根據文件,應該可以在 hook 函數中將結果變更為失敗。在這種情況下,唯一可用的 hook 函數是post_init_per_testcase
,但是變更那裡的傳回值不會影響測試案例的結果。現在已修正此問題。自有 ID:OTP-15869 輔助 ID:ERIERL-350
Common_Test 1.17.2
修正錯誤和故障
hook 函數失敗時的測試結果通常與 hook 關聯的函數失敗時的測試結果相同。例如,如果
post_init_per_testcase
失敗,則結果是跳過測試案例,就像init_per_testcase
失敗一樣。但是,對於 timetrap 逾時或其他 hook 函數執行所在的程序被終止的錯誤情況,先前並非如此。現在已修正此問題,因此無論 hook 函數如何失敗,錯誤處理都應相同。*潛在的不相容性*
自有 ID:OTP-15717 輔助 ID:ERIERL-334
在某些罕見的情況下,當兩個 common_test 節點使用相同的記錄目錄時,可能會發生計時問題,導致 common_test 因為其記錄快取檔案意外為空而當機。現在已修正此問題。
自有 ID:OTP-15758 輔助 ID:ERIERL-342
改進和新功能
引入了兩個新的 common_test hook 函數
post_groups/2
,在Suite:groups/0
之後呼叫post_all/3
,在Suite:all/0
之後呼叫這些函數允許修改
groups/0
和all/0
函數的傳回值。現在還允許從
all/0
傳回新的詞彙{testcase,TestCase,RepeatProperties}
。這可以用於將單個測試案例重複特定次數,或者直到它失敗或成功一次。自有 ID:OTP-14746 輔助 ID:ERIERL-143
Common_Test 1.17.1
改進和新功能
OTP 內部測試改進。
自有 ID:OTP-15716
Common_Test 1.17
修正錯誤和故障
如果輸入參數
KeyOrFile
為{key,string()}
,則一個錯誤會導致ct:encrypt_config_file/3
和ct:decrypt_config_file/3
失敗並顯示badmatch
。現在已修正此問題。自有 ID:OTP-15540
無法透過從
post_end_per_testcase
hook 函數傳回{fail,Reason}
來修改在end_per_testcase
中因 timetrap 逾時而失敗的測試案例的狀態。現在已修正此問題。自有 ID:OTP-15584 輔助 ID:ERIERL-282
改進和新功能
新增了
ct_telnet:cmd/3
和ct_telnet:send/3
的newline
選項的新變體,允許指定要附加為命令換行符號的字串。預設值為 "\n",但在某些情況下,需要使用 "\r\n",此選項允許使用。先前,作為參數提供給
ct_telnet:expect/2,3
的錯誤正規表示式會當機,並且看起來像是 common_test 中的內部錯誤。現在提供了更好的錯誤指示,但測試案例仍然會失敗。自有 ID:OTP-15229 輔助 ID:ERIERL-203
由於 yang RFC 允許在
edit-config
元素中有多個 config 資料的頂層元素,因此ct_netconfc:edit_config/3,4,5
現在可以接受 XML 元素的列表。自有 ID:OTP-15298
Common_Test 1.16.1
修正錯誤與故障
Logger 處理器 cth_log_redirect 先前會在呼叫記錄器格式化器之前呼叫回報回呼 (report_cb)。在某些情況下,這會失敗,因為 cth_log_redirect 無法處理具有兩個參數的回報回呼。現在已修正此問題,因此只有格式化器會呼叫回報回呼。
自有 ID:OTP-15307
Common_Test 1.16
改進與新功能
使用編譯器選項
nowarn_export_all
在自動編譯測試套件時停用export_all
警告。自有 ID:OTP-14810
使用 uri_string 模組取代 http_uri。
自有 ID:OTP-14902
Common_Test 1.15.4.4
改進與新功能
改進了 ct_property_test 的記錄功能。
自有 ID:OTP-16287
Common_Test 1.15.4.3
修正錯誤與故障
如果在測試套件中的
suite/0
函數中安裝了 ct hook,則會多次呼叫 hook 的terminate/1
函數,而不會先呼叫其init/2
函數。現在已修正此問題。自有 ID:OTP-15863 輔助 ID:ERIERL-370
如果
init_per_testcase
失敗,則會跳過測試本身。根據文件,應該可以在 hook 函數中將結果變更為失敗。在這種情況下,唯一可用的 hook 函數是post_init_per_testcase
,但是變更那裡的傳回值不會影響測試案例的結果。現在已修正此問題。自有 ID:OTP-15869 輔助 ID:ERIERL-350
Common_Test 1.15.4.2
修正錯誤與故障
hook 函數失敗時的測試結果通常與 hook 關聯的函數失敗時的測試結果相同。例如,如果
post_init_per_testcase
失敗,則結果是跳過測試案例,就像init_per_testcase
失敗一樣。但是,對於 timetrap 逾時或其他 hook 函數執行所在的程序被終止的錯誤情況,先前並非如此。現在已修正此問題,因此無論 hook 函數如何失敗,錯誤處理都應相同。*潛在的不相容性*
自有 ID:OTP-15717 輔助 ID:ERIERL-334
在某些罕見的情況下,當兩個 common_test 節點使用相同的記錄目錄時,可能會發生計時問題,導致 common_test 因為其記錄快取檔案意外為空而當機。現在已修正此問題。
自有 ID:OTP-15758 輔助 ID:ERIERL-342
改進與新功能
引入了兩個新的 common_test hook 函數
post_groups/2
,在Suite:groups/0
之後呼叫post_all/3
,在Suite:all/0
之後呼叫這些函數允許修改
groups/0
和all/0
函數的傳回值。現在還允許從
all/0
傳回新的詞彙{testcase,TestCase,RepeatProperties}
。這可以用於將單個測試案例重複特定次數,或者直到它失敗或成功一次。自有 ID:OTP-14746 輔助 ID:ERIERL-143
OTP 內部測試改進。
自有 ID:OTP-15716
Common_Test 1.15.4.1
修正錯誤與故障
無法透過從
post_end_per_testcase
hook 函數傳回{fail,Reason}
來修改在end_per_testcase
中因 timetrap 逾時而失敗的測試案例的狀態。現在已修正此問題。自有 ID:OTP-15584 輔助 ID:ERIERL-282
Common_Test 1.15.4.0.1
修正錯誤與故障
無法透過從
post_end_per_testcase
hook 函數傳回{fail,Reason}
來修改在end_per_testcase
中因 timetrap 逾時而失敗的測試案例的狀態。現在已修正此問題。自有 ID:OTP-15584 輔助 ID:ERIERL-282
Common_Test 1.15.4
修正錯誤與故障
修正測試規格中 'skip_groups' 與 'all suites' 選項組合的問題。
自有 ID:OTP-14953
Common_Test 1.15.3
改進與新功能
新增函式
ct:remaining_test_procs/0
,會傳回在呼叫時仍在執行的測試與群組領導者程序的識別資訊。自有 ID:OTP-13832
現在每個測試索引頁面的頁尾都會顯示「最新測試結果」連結,該連結會跳轉至最近產生的測試索引。這對於在測試執行之間快速比較結果,而無需遍歷記錄檔樹狀結構非常有用。
自有 ID:OTP-14281
Common_Test 1.15.2
改進與新功能
一般 Unicode 改進。
自有 ID:OTP-14462
Common_Test 1.15.1
修正錯誤與故障
在 OTP-20.0 中,c、make 和 ct_make 的行為已變更,在某些情況下,預設會將 beam 檔案寫入找到原始碼檔案的目錄。現在已將此改回舊行為,因此預設會將 beam 檔案寫入目前目錄。
自有 ID:OTP-14489 輔助 ID:ERL-438
Common_Test 1.15
修正錯誤與故障
已更正使用者 HTML 樣式表的說明文件中的錯誤。
自有 ID:OTP-14332 輔助 ID:seq13299
內部程式碼變更:呼叫
catch
後接呼叫erlang:get_stacktrace/0
已重寫為使用try
取代catch
,以使程式碼具有未來性。自有 ID:OTP-14400
改進與新功能
現在
ct_slave
模組的處理節點名稱的方式與傳遞給-sname
的節點名稱相同。這表示現在ct_slave:start('b@127.0.0.1').
可以運作。自有 ID:OTP-13806
新增新選項
keep_logs
。如果將此選項的值設定為整數 N,則 common_test 會移除目前記錄目錄中的所有 ct_run.* 目錄,但最新的 N 個除外。自有 ID:OTP-14179
現有的
ct_netconfc:open/1,2
會使用一個 SSH 通道開啟 SSH 連線,以實現一個 Netconf 會話。為了允許測試同一個 SSH 連線上的多個會話,將以下函式新增至ct_netconfc
*
connect/1,2
- 建立 SSH 連線disconnect/1
- 關閉指定的 SSH 連線session/1,2,3
- 在指定的連線上開啟 SSH 通道,並傳送 'hello' 以啟動 Netconf 會話自有 ID:OTP-14284
由於包含任意 Unicode 字元的原子而進行的雜項更新。
自有 ID:OTP-14285
新增函式 ct_ssh:shell/2,3。
自有 ID:OTP-14415 輔助 ID:seq13315
Common_Test 1.14
修正錯誤與故障
在 common_test 勾點處理中完成下列更正與改進
新增額外引數
Suite
作為下列每個勾點回呼函式的第一個引數pre_init_per_group
post_init_per_group
pre_end_per_group
post_end_per_group
pre_init_per_testcase
post_init_per_testcase
pre_end_per_testcase
post_end_per_testcase
on_tc_fail
on_tc_skip
為了回溯相容性,如果未從勾點回呼模組匯出新函式,
common_test
將會回復為舊介面,並在不使用Suite
引數的情況下呼叫函式。如果存在
init_per_suite
或end_per_suite
其中一個,但另一個不存在,則會將不存在的函式回報為測試記錄中理由為undef
的失敗。對於init/end_per_group
也是如此。根據使用者指南,這一直都是一項要求,但現在common_test
在報告中更加明確。如果從測試套件匯出
init_per_suite
,但未匯出end_per_suite
,則會使用Suite=ct_framework
而不是正確的套件名稱來呼叫pre/post_end_per_suite
。現在已修正此問題。如果從套件匯出
end_per_group
,但未匯出init_per_group
,則永遠不會呼叫end_per_group
。現在已修正此問題。在呼叫
pre_init_per_*
之前略過的測試會收到對應post_init_per_*
的錯誤呼叫。例如,如果因為suite/0
失敗而略過測試,則即使未呼叫pre_init_per_suite
和init_per_suite
,也會呼叫post_init_per_suite
。現在已修正此問題,因此除非先呼叫對應的pre_*
回呼,否則永遠不會呼叫post_*
回呼。在
init_per_testcase
之前或之中略過的測試會收到對pre_end_per_testcase
和post_end_per_testcase
的錯誤呼叫。現在已修正此問題,因此當未呼叫end_per_testcase
時,不會呼叫pre/post_end_per_testcase
。如果結束訊號導致測試案例程序在執行
init_per_testcase
時終止,則案例先前會回報為失敗,理由為{skip,...}
。現在已修正此問題,因此案例會標示為略過。如果結束訊號導致測試案例程序在執行
end_per_testcase
時終止,則案例先前會標示為失敗。現在已修正此問題,因此測試案例的狀態不會變更,只會在註解欄位中新增警告。如果因為選項
{force_stop,skip_rest}
或因為失敗的序列而略過測試案例,則不會傳送tc_start
事件,只會傳送tc_done
。現在已修正此問題,因此會傳送這兩個事件。當在設定函式中略過或失敗時,設定函式本身會在勾點回呼
on_tc_skip
或on_tc_fail
中取得{auto_skipped,Reason}
、{skipped,Reason}
或{failed,Reason}
。因此而略過的其他測試案例只會在on_tc_skip
中取得Reason
。現在已修正此問題,因此即使是導致略過/失敗的設定函式,也只會在勾點回呼中取得Reason
。
自有 ID:OTP-10599 輔助 ID:kunagi-344 [255]
當測試案例因為測試規格中的
skip_cases
陳述式而略過時,cth_surefire
會錯誤地將上一個測試案例標示為 xml 報告中的略過。實際略過的測試案例根本不會出現在 xml 報告中。現在已修正此問題。自有 ID:OTP-14129 輔助 ID:seq13244
multiply_timetraps
和scale_timetraps
選項無法與測試規格搭配使用,此問題已修正。自有 ID:OTP-14210
改進與新功能
新增 ct_testspec:get_tests/1。rebar3 會使用此函式來取得從 testspec 執行測試時必須編譯的所有目錄,而不是在 rebar3 中實作 testspec 剖析。
自有 ID:OTP-14132
Common_Test 1.13
修正錯誤與故障
測試執行期間對螢幕的一些列印輸出 (包括
ct:print/1,2,3,4
) 會使用本機user
程序作為 IO 裝置,而且當透過遠端節點上的 Shell 執行測試時,這些列印輸出將會無法看到。為了解決此問題,已導入預設 Common Test 群組領導者程序。此程序會將列印輸出路由傳送至起始程序的群組領導者 (如果有的話),否則會路由傳送至user
。自有 ID:OTP-13973 輔助 ID:ERL-279
一些充當測試案例 I/O 群組領導者的 Common Test 程序,並不會在測試執行結束時如預期終止。此錯誤已修正。
自有 ID:OTP-14026 輔助 ID:ERL-287
記錄詳細程度的功能文件說明不正確。例如,測試執行的預設詳細程度層級並非 50 (
?STD_VERBOSITY
),而是 100 (?MAX_VERBOSITY
)。此外,部分範例存在錯誤和瑕疵。《使用者指南》中對應的章節 (5.18) 已更新。自有 ID:OTP-14044 輔助 ID:seq13223
改進和新功能
新增一項功能,讓使用者可以指定記錄輸出的標題。標題在
ct:pal/3,4,5
、ct:print/3,4,5
或ct:log/3,4,5
的Opts
列表引數中以{heading,string()}
形式指定。如果省略標題選項,則會改用類別名稱或"User"
作為標題。自有 ID:OTP-14043 輔助 ID:seq13226
Common_Test 1.12.3
已修正的錯誤和故障
如果 telnet 伺服器在終止該行之前,於傳輸文字行時暫停,則
ct_telnet:expect/3
函式會在測試案例 HTML 記錄中將該行列印兩次。此問題已修正。自有 ID:OTP-13730 輔助 ID:seq13135
新增函式
ct:set_verbosity/2
和ct:get_verbosity/1
,以便測試案例、CT 勾點或測試框架函式可以修改和讀取記錄的詳細程度層級。自有 ID:OTP-13841
如果 Erlang 原始檔包含
-warning()
指示詞,make
(tools) 和ct_make
(common_test) 會當機。自有 ID:OTP-13855
Common_Test 1.12.2
已修正的錯誤和故障
common_test.app.src 中缺少下列模組:ct_groups、ct_property_test、ct_release_test、ct_webtool、ct_webtool_sup、test_server_gl。現在已新增這些模組。
自有 ID:OTP-13475
Common Test 列印的接收錯誤報告的時間戳記不正確。
自有 ID:OTP-13615 輔助 ID:seq13124
Common_Test 1.12.1
已修正的錯誤和故障
Common Test telnet 用戶端開啟的 socket 預設會啟用
nodelay
選項 (true
)。這似乎導致某些系統上的 telnet 伺服器發生通訊問題,因此不再使用此選項。您可以在 telnet 連線設定中指定其值。如需詳細資訊,請參閱ct_telnet
的手冊頁。請注意,unix_telnet
中的介面函式connect
已更新為具有額外的引數,現在是unix_telnet:connect/7
。自有 ID:OTP-13462 輔助 ID:seq13077
修正 cth_surefire 中的錯誤:當 pre_init_per_suite 勾點在到達 cth_surefire:pre_init_per_suite 之前失敗時,cth_surefire 會產生不正確的 XML。
自有 ID:OTP-13513
已更新
ct:get_timetrap_info/0
函式,以傳回更多關於 timetrap 縮放的資訊。自有 ID:OTP-13535
已修正 Common Test 不正確地逸出樣式表 HTML 標籤的問題。
自有 ID:OTP-13536
已導入
ct_run
啟動旗標-no_esc_chars
和ct:run_test/1
啟動選項{esc_chars,Bool}
,以便停用字元的自動逸出。在 Common Test 1.12 中導入自動逸出以io:format/1,2
和ct:pal/1,2,3,4
列印的特殊 HTML 字元。新的旗標/選項可用於基於向後相容性原因而停用此功能。(測試規格中也支援此選項)。自有 ID:OTP-13537
Common_Test 1.12
已修正的錯誤和故障
此更新修正 HTML 記錄檔中一般輸出未逸出特殊字元的問題。現在會自動逸出使用
io:format/2
和ct:pal/2
進行的輸出中的特殊字元。Common Test 不會嘗試逸出使用ct:log/2
列印的字元,因為假設使用者可能想要使用此函式列印 HTML 標記的資料。已新增新的函式ct:log/5
,其提供字元的選擇性逸出。後者函式也可用於將文字列印到記錄中,而沒有標頭和 CSS 類別包裝 (類似於io:format/2
)。自有 ID:OTP-13003 輔助 ID:seq13005
Commit 4cf832f1ad163f5b25dd8a6f2d314c169c23c82f 錯誤地移除 netconf 連線開啟和關閉的記錄。現在已修正此問題。
自有 ID:OTP-13386
使用
test_server:start_node/3
啟動的節點寫入其 erl_crash.dump 的目錄已變更。先前的損毀傾印檔會寫入 test_server.beam 的目錄,但在較新版本的 Microsoft Windows 中,該目錄已不再可寫入 (即使是管理員也是如此)。現在改為使用框架 (common_test) 記錄目錄。自有 ID:OTP-13388
改進和新功能
此更新讓您可以在一個測試規格詞彙中指定同一個群組或測試案例的多個實例,以便重複執行。範例:
{groups, "./", my_SUITE, [my_group, my_group], {cases, all}}
或{cases, "./", my_SUITE, [my_tc, my_tc, my_tc]}
。自有 ID:OTP-13241 輔助 ID:seq12979
新增兩個新的 CT 勾點函式:
post_init_per_testcase/4
和pre_end_per_testcase/3
。透過這些勾點函式,可以在執行測試案例之前和之後立即執行任意動作 (包括修改測試執行、測試狀態和結果)。自有 ID:OTP-13242 輔助 ID:seq12991
先前
ct_netconfc
對於使用者可以設定哪些 SSH 選項非常嚴格。現在已變更,並允許使用任何 SSH 選項。netconf 用戶端只會將任何無法辨識的選項傳遞給 SSH。自有 ID:OTP-13338 輔助 ID:seq13053、seq13069
Common_Test 1.11.2
已修正的錯誤和故障
如果 ssh 封包包含多個 netconf 結束標籤,則永遠不會在 ct_netconfc:handle_data 中偵測到第二個結束標籤。相反地,它會包含在提供給 xmerl 剖析器的 XML 資料中,然後剖析器會失敗。此問題是由 OTP-13007 引入,現在已修正。
自有 ID:OTP-13323
Common_Test 1.11.1
已修正的錯誤和故障
當來自 netconf 伺服器的資料分割成許多 ssh 封包時,netconf 用戶端的效能非常差。現在已改善此問題。
自有 ID:OTP-13007
在 ct_netconfc 中,如果計時器在伺服器傳送 rpc-reply「同時」過期,則當用戶端從其「擱置」清單中移除計時器參考時,逾時訊息可能已經在用戶端的訊息佇列中。這會在用戶端中造成當機,因為在處理逾時訊息時找不到計時器參考。現在已透過在取消計時器時永遠從訊息佇列中清除逾時訊息來修正此問題。
自有 ID:OTP-13008
錯誤記錄處理常式 ct_conn_log_h 未遵循 'silent' 選項,並嘗試列印到未定義的檔案描述器。此問題已修正。
自有 ID:OTP-13035
如果使用者在測試套件編譯失敗後讓測試繼續執行,Common Test 未如預期地將結束狀態設定為表示失敗。此問題已修正。此外,即使存在對 stdin/stdout 的存取,'abort_if_missing_suites' 選項現在也會讓 Common Test 中止測試執行,而不會在編譯失敗時詢問使用者。
自有 ID:OTP-13173 輔助 ID:seq12978
若將 Common Test 的 'create_priv_dir' 啟動選項設定為 'auto_per_tc',組態函式的 priv 目錄名稱可能會與測試案例的 priv 目錄名稱衝突,這會導致 Test Server 失敗。此錯誤已修正。
自有 ID:OTP-13181
Common_Test 1.11
已修正的錯誤和故障
由於測試套件編譯錯誤而中止的測試狀態已從 'auto_skipped' 變更為 'failed'。這會影響文字記錄檔、事件處理和 CT 勾點回呼。也改善了編譯失敗的記錄,尤其是在多個測試套件編譯失敗的情況下。
自有 ID:OTP-10816
Test Server 原始碼剖析器 (erl2html2) 無法處理 epp_dodger 傳回的語法樹狀結構中的巨集元組。此錯誤已修正。
自有 ID:OTP-12740
新增選項,允許在 .spec 檔案中指定 ssh_port:[{node_start, [{ssh_port, 9999}]}].
也允許指定額外的 ssh 選項,例如公鑰檔案的路徑:[{node_start, [{ssh_opts, [{user_dir, "/home/shrek/e2/"}]}]}].
內部編號:OTP-12809
改進與新功能
先前無法將可選參數(例如 default-operation)加入透過 ct_netconfc:edit_config/3,4 發送的 edit-config 請求中,您必須使用 ct_netconfc:send_rpc/2,3。為了簡化和完整性,現在將一個新的可選參數 OptParams 加入到 edit_config 函式中。
內部編號:OTP-10446 輔助編號:kunagi-266 [177]
當使用 ts 介面執行 OTP 測試時,現在可以為每個 OTP 應用程式指定所謂的測試類別。測試類別由 CT 測試規格表示,並定義現有測試套件、群組和案例的任意子集。測試類別的範例包括 'smoke'(冒煙測試)和 'bench'(基準測試)。(呼叫 ts:help() 以獲取更多資訊)。此外,還實作了在測試期間從目前測試規格讀取項目的函式:ct:get_testspec_terms/0 和 ct:get_testspec_terms/1。
內部編號:OTP-11962
已移除過時的腳本和 make 檔案操作,並更新了 Common Test 使用者指南中的安裝章節。
內部編號:OTP-12421
'keep_alive' 間隔已縮短至 8 秒,比 ct_telnet:expect/3 的預設 'idle_timeout' 值短 2 秒。這樣,telnet 伺服器會在操作逾時之前收到 NOP 訊息(可能會觸發動作)。此外,為了減少通訊逾時的風險,所有 telnet 連線的 TCP 選項 'nodelay' 預設為啟用。
內部編號:OTP-12678 輔助編號:seq12818
當執行 ct_run 程式時沒有任何標誌,現在會使用 "-dir ." 作為預設啟動標誌。同樣地,如果以空列表呼叫 ct:run_test/1,則會使用選項 {dir,"."}。此外,已更新說明文字 (ct_run -help),以及 Common Test 使用者指南中的執行測試章節。
內部編號:OTP-12684 輔助編號:seq12865
Common_Test 1.10.1
已修正的錯誤與故障
已修正 Common Test 記錄器程序中的一個錯誤,該錯誤會導致應用程式在長名稱節點上執行時崩潰。
內部編號:OTP-12643
在 ct_telnet:expect/3 中引入了 'wait_for_prompt' 選項,即使已找到其他 expect 模式,也會強制函式在收到提示字串之前不返回。
內部編號:OTP-12688 輔助編號:seq12818
如果測試案例中的最後一個運算式導致 timetrap 逾時,則會忽略堆疊追蹤,並且不會列印到測試案例記錄檔。發生這種情況是因為在這種情況下,由於尾呼叫消除,堆疊追蹤中沒有 {Suite,TestCase,Line} 資訊。Common Test 已被修改為透過在正確的位置插入 {Suite,TestCase,last_expr} 元組並按預期列印堆疊追蹤來處理這種情況。
內部編號:OTP-12697 輔助編號:seq12848
修正了 ct_netconfc 中的一個緩衝區問題,該問題可能導致某些訊息被永久緩衝。
內部編號:OTP-12698 輔助編號:seq12844
Common Test 中的 VTS 模式已修改為使用 Webtool 應用程式 (ct_webtool) 的私有版本。
內部編號:OTP-12704 輔助編號:OTP-10922
在
ct_netconfc:hello/3
中新增加入使用者功能的功能。內部編號:OTP-12707 輔助編號:seq12846
Common_Test 1.10
已修正的錯誤與故障
新的測試執行後,測試概觀檔案 index.html 並非總是能正確更新。這是因為 Common Test 記錄快取機制中的錯誤,現在已修正。
內部編號:OTP-11400
根據文件,當成功的測試案例返回時,Common Test 應將 Result = ok 的 tc_done 事件發送到事件處理常式。但是,Common Test 會將 Result 設定為測試案例的傳回值。Common Test 現在已修改為符合文件。
*潛在的不相容性*
內部編號:OTP-12279 輔助編號:seq12737, OTP-12531
即使 total_timeout 已設定為較低的值(即較短的時間),ct_telnet:expect/3 呼叫也無法在 idle_timeout 之前中止。此問題已修正。
內部編號:OTP-12335
來自設定函式和測試案例的未記錄傳回值 {skipped,Reason} 處理方式不一致。例如,測試案例會向 CT Hook 函式回報為「skipped」,但向事件處理常式回報為「successful」。現在,上述傳回值的處理方式與 {skip,Reason} 一致,並且也已記錄在文件中。
*潛在的不相容性*
內部編號:OTP-12359 輔助編號:seq12760
Erlang 原始碼轉 HTML 產生器有時會失敗,因為 epp:parse_erl_form/1 無法在包含的標頭檔中找到並展開所需的巨集。此問題已透過確保 common_test 始終將完整的包含路徑傳遞給 epp 來解決。此外,還修正了一個錯誤,該錯誤可能會因為格式錯誤的語法樹而導致 erl_syntax:revert/1 失敗。
內部編號:OTP-12419
已在 ct_run 說明文字中新增遺失的 group 選項。
內部編號:OTP-12433 輔助編號:seq12788
透過 on_tc_fail/2 和 on_tc_skip/2 Hook 函式的 ct:log/2/3 或 ct:pal/2/3 列印輸出(相當出乎意料地)最終會出現在「unexpected i/o」記錄檔中,而不是測試案例記錄檔中。此行為已變更,因此現在,這些 Hook 函式的所有列印輸出(包括 stdio 列印輸出)都會路由到測試案例記錄檔。
內部編號:OTP-12468
如果傳回類型為 void,ct_netconfc:action/3 現在將接受 {ok,[simple_xml()]} 形式的 RPC 回覆,並且在這種情況下只傳回原子 ok。
內部編號:OTP-12491 輔助編號:seq12797
OTP-11971 錯誤地變更了 cover 規格檔中指定的 incl_dirs 相對路徑的處理方式。現在已修正,因此這些路徑預期是相對於 cover 規格檔本身儲存的目錄。
內部編號:OTP-12498 輔助編號:OTP-11971
已更新一些測試案例,以使用 ct:sleep/1 而不是 timer:sleep/1。原因是睡眠時間需要調整,以補償執行速度較慢的情況(例如,當 cover 正在執行時)。
內部編號:OTP-12574
改進與新功能
Common Test 現在匯出一個函式 ct:get_event_mgr_ref/0,該函式會傳回 Common Test 事件管理員的名稱。這使得可以在測試執行時將事件處理常式插入事件管理員(使用 gen_event API)。
內部編號:OTP-12506 輔助編號:seq12802
當測試案例(或設定函式)因為來自連結程序的結束訊號而失敗時,Common Test 先前只將程序終止的原因傳遞給 CT 後置 Hook 函式和事件處理常式(在 tc_done 事件中)。現在已變更為改為傳遞元組 {'EXIT',ReasonForProcessTermination}。這使得 CT 後置 Hook 函式更容易區分這種失敗與其他類型的錯誤以及成功測試案例的傳回值。
*潛在的不相容性*
內部編號:OTP-12531 輔助編號:OTP-12279
ct_telnet:get_data/1 中引入了一個新功能,該功能可以在接收緩衝區中保留不完整的字串(尚未以換行符號終止的字串)時,自動輪詢 telnet 連線。輪詢由兩個新的 telnet 設定值控制,這些值記錄在 ct_telnet 參考手冊中。輪詢機制預設為停用(使 get_data/1 函式向後相容)。
內部編號:OTP-12627
Common_Test 1.9
已修正的錯誤與故障
Test Server(和 Common Test)中的原始碼轉 html 程式碼產生器將無法在 html 程式碼中為具有不可展開巨集的函式產生錨點,導致指向此類函式的 html 連結錯誤。此修正讓程式碼產生器忽略無法展開的巨集(即不預先處理它們),以便始終產生正確的錨點。
內部編號:OTP-11766 輔助編號:seq12556
OTP-11971 錯誤地變更了 cover 規格檔中指定的相對路徑(匯入/匯出檔案)的處理方式。現在已修正,因此這些路徑預期是相對於 cover 規格檔本身儲存的目錄。
內部編號:OTP-12031
當嘗試在具有慢速檔案系統的電腦上將大量 SASL 報告列印到記錄時,Common Test 有時會崩潰。此問題(由於 ct_logs 中的 IO 訊息緩衝錯誤)已修正。
內部編號:OTP-12159
common_test telnet 用戶端 ct_telnet 及其相關元件有一些不穩定的測試案例。其中一些是由於 unix_telnet 回呼在發送密碼後發送額外的換行符號而引起的。這導致伺服器發送額外的提示符號,這讓測試感到困惑。不再發送額外的換行符號。
此外,改善了 telnet 用戶端的除錯列印輸出和記錄,並稍微修改了一些測試案例以穩定測試。
內部編號:OTP-12329
ct_netconfc 沒有預期到來自 ssh_connection:subsystem/4 的傳回值 {error,timeout}。此問題已修正。
內部編號:OTP-12334
改進與新功能
在
ct_telnet
中,一個新的選項{newline,boolean()}
已新增到所有將資料(命令字串)發送到 telnet 伺服器的函式中。預設情況下,ct_telnet
會將換行符號新增到所有命令字串,並且將新選項設定為false
會關閉此行為。內部編號:OTP-12252 輔助編號:seq12730
在建置時將
autoconf
輔助程式分發到應用程式,而不是在儲存庫中提交多個相同的副本。內部編號:OTP-12348
Common_Test 1.8.2
已修正的錯誤與故障
Ticket OTP-11971 引入了對 test_server-3.7.1 的執行時期相依性,因為 test_server 和 common_test 之間的介面已變更。錯誤的是,common_test.app 檔案未據此更新。現在已修正。
內部編號:OTP-12037
改進與新功能
警告:此為實驗性質功能,可能在未事先警告的情況下消失或變更。
common_test 新增了實驗性質的支援,可從 common_test 套件中執行 Quickcheck 和 PropEr 測試。請參閱參考手冊中關於新模組
ct_property_testing
的說明。實驗性質的屬性測試已新增至
lib/{inet,ssh}/test/property_test
目錄下。它們可以直接執行,也可以從 common_test 套件inet/ftp_property_test_SUITE.erl
和ssh/test/ssh_property_test_SUITE.erl
中執行。詳情請參閱
test
目錄中的程式碼和說明文件。(感謝 Tuncer Ayaz 提供修補程式,新增 Triq)
自有 ID:OTP-12119
Common_Test 1.8.1
修正的錯誤和故障
長 telnet 訊息中的子字串有時會被錯誤地反轉。此錯誤已修正。
自有 ID:OTP-11871 輔助 ID:seq12581
Common Test 中基本的 HTML 記錄模式(為了與舊版瀏覽器相容)會產生標籤不平衡的 HTML 程式碼。此問題已修正。
自有 ID:OTP-11917 輔助 ID:seq12598
已改進使用 common_test 執行程式碼涵蓋分析的機制。先前,如果測試執行包含多個測試,則會針對每個測試啟動和停止涵蓋範圍。這會從測試套件結果頁面上的「涵蓋範圍記錄」連結取得「中繼」涵蓋範圍記錄。若要在所有測試中累積涵蓋範圍資料,則必須在涵蓋範圍規格檔案中使用 'export' 選項。這項功能沒有詳細說明,而且功能相當令人困惑。
當測試執行包含多個測試時,在涵蓋範圍規格檔案中使用 'nodes' 選項將會失敗,因為指定的節點只會包含在第一個測試的涵蓋範圍分析中。
重複編譯和分析相同的模組也非常耗時。
為了解決這些問題,ct 現在只會針對每個測試執行,即針對每個涵蓋範圍規格檔案,編譯和分析模組一次。記錄檔可透過最上層索引頁面的新按鈕取得。測試套件結果頁面上的舊「涵蓋範圍記錄」連結仍然存在,但它們都指向包含累積結果的相同記錄。
自有 ID:OTP-11971
如果多個測試在不同的 Erlang 節點上同時執行,並將其記錄寫入相同的目錄,則在完成時,all_runs.html 記錄檔中經常會有顯示不完整結果(全部為零)的項目。此問題是由 Common Test 記錄快取機制中的錯誤所導致,該錯誤已修正。
自有 ID:OTP-11988 輔助 ID:seq12611
Common_Test 1.8
修正的錯誤和故障
如果測試案例程序在執行 init_per_testcase/2 時收到來自連結程序的結束訊號,Common Test 會錯誤地處理產生的錯誤。問題已解決,且 Common Test 現在會正確報告此類錯誤,並提供正確的錯誤原因和結束位置。
自有 ID:OTP-11643
使用相同測試案例的兩個或多個執行個體執行並行測試案例群組,將會導致記錄檔名稱相同,且一個測試案例執行個體會覆寫另一個測試案例的記錄檔。此問題已解決。
自有 ID:OTP-11644
下列應用程式的應用程式升級 (appup) 檔案已修正
asn1、common_test、compiler、crypto、debugger、dialyzer、edoc、eldap、erl_docgen、et、eunit、gs、hipe、inets、observer、odbc、os_mon、otp_mibs、parsetools、percept、public_key、reltool、runtime_tools、ssh、syntax_tools、test_server、tools、typer、webtool、wx、xmerl
已在 test_server 中新增一個用於測試 appup 檔案的新測試公用程式。現在 OTP 中的大多數應用程式都使用此公用程式。
(感謝 Tobias Schlager)
自有 ID:OTP-11744
如果先前的 hook 傳回
{skip,Reason}
或{fail,Reason}
而不是Config
清單,則cth_surefire
hook 會在pre_init_per_suite/3
中當機。此錯誤已修正,且cth_surefire
現在只會傳播接收到的InitData
值。自有 ID:OTP-11811
已修正
ct_netconfc:get/2,3
、ct_netconfc:get_config/3,4
、ct_netconfc:action/2,3
、ct_netconfc:send_rpc/2,3
和ct_netconfc:send/2,3
的傳回值規格。自有 ID:OTP-11834 輔助 ID:seq12574
改進和新功能
ct_telnet 現在可以記錄 telnet 會話期間發生的所有通訊。先前只會記錄有關 ct_telnet 作業和命令的資訊,以及來自伺服器的明確要求資料。
此外,現在可以使用基於錯誤記錄器事件處理常式和專用的 Common Test hook
cth_conn_log
的記錄機制,將個別連線的資料列印到個別的記錄檔。請參閱ct_telnet
參考手冊,以取得更多資訊和範例。重要注意事項:已將新的引數
ConnName
新增至unix_telnet:connect/5
回呼函式。這會強制使用私人 ct_telnet 回呼模組的使用者根據unix_telnet:connect/6
更新其程式碼。請參閱unix_telnet
參考手冊和原始碼模組以取得詳細資訊。自有 ID:OTP-11440 輔助 ID:seq12457
已針對
ct_telnet:expect/3
函式引入新的逾時選項。使用{total_timeout,Time}
可以為完整的 expect 作業設定時間限制。在Time
毫秒之後,expect/3
會傳回{error,timeout}
。如果未指定total_timeout
,則使用的預設值為無限大(即沒有時間限制)。請參閱ct_telnet
參考手冊以取得更多資訊。自有 ID:OTP-11689
已修正或移動一些函式規格,並修正一些 edoc 註解,以便允許使用 edoc。(感謝 Pierre Fenoll)
自有 ID:OTP-11702
已將測試案例群組名稱資訊新增至使用
tc_user_skip
和tc_auto_skip
事件訊息傳送的資料,以及傳遞至 CT Hook 函式on_tc_skip/3
和on_tc_fail/3
的資料。修改只會影響函式名稱元素/引數。如果相關測試案例不屬於測試案例群組,此值會保持為原子。否則,會傳遞一個 tuple{FuncName,GroupName}
({atom(),atom()}
) 來代替。請注意,此變更可能(取決於用於比對的模式)需要修改使用者事件處理常式和 hook 模組。有關詳細資訊,請參閱 Common Test 使用者指南中的「事件處理」章節,以及
ct_hooks
的參考手冊。另請注意,已修改 Test Server 架構回呼函式
report/2
。此變更只會影響與 Test Server 而非 Common Test 介接的測試架構的使用者。請參閱test_server_ctrl
參考手冊以取得詳細資訊。*潛在的不相容性*
自有 ID:OTP-11732 輔助 ID:seq12541
如果 Common Test 無法提示使用者在一個或多個測試套件編譯失敗時中止或繼續測試執行,則可以使用新的選項
{abort_if_missing_suites,Bool}
來指定是否應繼續測試執行,或停止執行。Bool
的預設值為false
(即即使套件遺失也繼續執行)。自有 ID:OTP-11769
已知錯誤和問題
common_test:修正 Dialyzer 報告的問題。
自有 ID:OTP-11525
Common_Test 1.7.4
修正的錯誤和故障
現在會正確檢查群組和測試案例資訊函式的傳回值,如果傳回值無效,則會自動略過相關的測試案例。
自有 ID:OTP-10631 輔助 ID:kunagi-345 [256]
已更新 Common Test 處理略過測試案例的方式。在先前的版本中,從組態函式(例如 init_per_suite 或 init_per_group)傳回
{skip,Reason}
,會導致所有受影響的測試案例都以auto_skipped
狀態略過。這是不適當的,因為此狀態應該用來通知 Common Test 已主動略過某些項目(例如,如果 init_per_group 失敗,則會略過測試案例群組)。因此,在此版本的 Common Test 中,每當使用者略過套件、群組或個別測試案例時(藉由組態函式或測試規格詞彙),受影響的測試案例都會改為取得user_skipped
狀態。此更新表示一些可能會以各種方式影響 Common Test 使用者的變更
- 測試結果和統計資料將會受到影響,這在執行迴歸測試並將結果與先前的測試執行進行比較時,必須知道。
- 讀取或剖析文字記錄檔
suite.log
的使用者會注意到,自動略過的函式現在會報告為auto_skipped
而不是之前的skipped
。 - 當 info 函式(例如 suite/0 或 group/1)中的
require
失敗時,所有受影響的組態函式和測試案例都會標示為auto_skipped
。 - 如果 Common Test 偵測到測試套件中的錯誤(例如無效的 all/0 函式),則所有受影響的組態函式和測試案例都會標示為
auto_skipped
。 - 如果重複的測試執行工作階段在啟用
force_stop
的情況下達到期限,則所有剩餘的測試案例都會標示為auto_skipped
而不是之前的user_skipped
。 - Common Test 在測試執行期間產生的事件訊息已受到此更新的影響。有關詳細資訊,請參閱 OTP-11524。
自有 ID:OTP-11305 輔助 ID:OTP-11524
從 pre_end_per_group/3 使用者 hook 函式傳回 {skip, Reason} 會導致 Common Test cth_log_redirect hook 中結束。此問題已解決。
自有 ID:OTP-11409 輔助 ID:seq12446
當 netconf 伺服器沒有回應關閉工作階段要求時,對 ct_netconfc:close_session/2 的呼叫會無限期地暫停,等待 netconf 用戶端終止。此問題已修正。如果關閉工作階段要求逾時,用戶端現在將永遠終止(並關閉連線)。
自有 ID:OTP-11478
改進和新功能
修正 cth_log_redirect.erl 以符合 gen_event 行為。感謝 Roberto Aloi。
自有 ID:OTP-11401
CT hook 回呼函式
on_tc_skip/3
的第一個參數已修改。當此函式因init_per_group
或end_per_group
而被呼叫時,第一個參數的值現在會是{init_per_group,GroupName}
或{end_per_group,GroupName}
。自有 ID:OTP-11523
以下是 Common Test 在測試執行期間所傳送的事件訊息的修改:
- 對於
tc_auto_skip
事件,Func
元素的值已從end_per_group
變更為{end_per_group,GroupName}
。 - 當
require
在 info 函式(例如 suite/0 或 group/1)中失敗時,初始化組態函式現在會回報為auto_skipped
而不是skipped
,並附帶tc_done
事件。 - 當
require
因為組態名稱已在使用中而在 info 函式中失敗時,tc_done
事件現在會回報錯誤,並以標記為failed
而非skipped
的 tuple (大小為 2) 表示。
請參閱 Common Test 使用者指南中的「事件處理」章節以取得參考。
自有 ID:OTP-11524 輔助 ID:OTP-11305
- 對於
Common_Test 1.7.3
已修正的錯誤和故障
新增了 ct_netconfc:send 和 ct_netconfc:send_rpc 的文件。
自有 ID:OTP-11132
ct_netconfc:create_subscription 只允許 'filter' 元素內有一個 XML 元素。根據 RFC5277 的規定,應該允許在 filter 內新增任意數量的元素,因此現在已修正此問題。
自有 ID:OTP-11166
Common Test hook cth_log_redirect 安裝的錯誤處理常式不會回應 init:stop/1/2。此問題已修正。
自有 ID:OTP-11175 輔助 ID:seq12356
當 Common Test 未執行時呼叫 ct:pal/2 或 ct:print/2 會導致退出。此行為已變更,現在只會將字串列印到 stdout。
自有 ID:OTP-11176
修正了 cth_log_redirect hook 呼叫 ct_logs 中未定義函式的問題。
自有 ID:OTP-11238
使用 'repeat' 選項執行測試時,Common Test 公用程式處理程序在測試執行後並非總是能快速終止,導致下一次執行開始失敗。現在使用監視器來確保每次測試執行後公用程式處理程序能終止。
自有 ID:OTP-11244 輔助 ID:seq12396
測試伺服器安裝了一個錯誤處理常式 (test_server_h),只是為了在每次收到錯誤或進度報告時,將目前測試案例的名稱寫入 stdout。此功能並無用處,因此已移除。內建的 Common Test hook cth_log_redirect 反而獲得改進,現在也會在記錄檔中用套件、群組和/或測試案例名稱標記所有錯誤和進度報告。
自有 ID:OTP-11263 輔助 ID:seq12251
改進和新功能
導入了一個新的記錄檔「測試前和測試後 I/O 記錄檔」,可以擷取測試執行之前和之後的錯誤和進度報告,以及使用 ct:log/2 和 ct:pal/2 產生的列印輸出。(同時也對記錄系統進行了一些小的改進)。新記錄檔的連結位於「Common Test Framework 記錄檔」頁面。Common Test 使用者指南已更新,加入了關於新記錄檔的資訊,以及關於如何透過 CT Hook 初始化和終止函式,將外部應用程式與 Common Test 同步的新章節。
自有 ID:OTP-11272
Common_Test 1.7.2
已修正的錯誤和故障
Common Test 中一般連線處理的設計缺陷,導致無法實作可將多個連線名稱(即組態變數別名)對應到單一連線 pid 的連線處理常式。此問題已解決。
自有 ID:OTP-10126 輔助 ID:kunagi-178 [89]
如果 telnet 連線處於掛起狀態,則呼叫 ct_telnet:close/1 會在 5 秒後逾時,且連線處理程序會被強制終止。在某些情況下,連線不會取消註冊,且嘗試使用相同名稱開啟新連線會使 common_test 嘗試重複使用相同的連線,因為它認為連線仍處於活動狀態。此問題已修正 - 現在已終止的連線一律會取消註冊。
自有 ID:OTP-10648 輔助 ID:seq12212
透過快取最上層 HTML 索引記錄檔 (記錄檔目錄中的 all_runs.html 和 index.html),提高了測試效能。這解決了啟動時間緩慢和測試執行時間隨著 logdir 中儲存的 ct_run 目錄數量增加而增加的問題。快取的索引項目在測試執行期間會儲存在 RAM 中,並在測試執行完成時儲存到 logdir 中的檔案(以加快啟動速度)。
自有 ID:OTP-10855
測試規格功能的測試已改進,並且發現並修正了一些小錯誤。
自有 ID:OTP-10857
某些 HTML 頁尾中指向最上層索引檔案的連結已消失。此錯誤已修正。此外,套件總覽記錄檔無法正確關閉的問題也已解決。
自有 ID:OTP-11046
如果套件中未實作 end_per_testcase,即使它是選擇性函式,Common Test 在發生 timetrap 錯誤時,也會在記錄檔中列印警告。此列印輸出已移除。
自有 ID:OTP-11052
改進和新功能
如果無法決定特定記錄列印輸出屬於哪個測試案例,則先前會使用 common test framework 記錄檔。現在,此類列印輸出會改為傳送到 test_server 中的 unexpected_io.log.html,以便只有一個地方可以尋找「遺失的」列印輸出。
自有 ID:OTP-10494 輔助 ID:kunagi-319 [230]
讓 cover 在從 beam 尋找來源時更智慧。
尤其是,如果目前的啟發式方法失敗,則使用 module_info 中的來源路徑進行搜尋。
自有 ID:OTP-10902
新增 ct_slave:start/2 的變體,用於在本機主機上使用指定的選項啟動節點。
自有 ID:OTP-10920
整合 Andreas Schultz 的橢圓曲線貢獻
為了能夠在 SSL/TLS 中支援橢圓曲線密碼套件,已在 public_key 和 crypto 中新增處理橢圓曲線基礎架構的功能。
這也導致 crypto API 重新撰寫,以獲得一致性並消除不必要的額外負荷。已更新所有使用 crypto 的 OTP 應用程式以使用新的 API。
影響:與其他公開金鑰演算法相比,橢圓曲線密碼學 (ECC) 以較小的金鑰大小提供相當的安全性。較小的金鑰大小可節省電力、記憶體、頻寬和運算成本,這使得 ECC 對於受限環境特別有吸引力。
自有 ID:OTP-11009
已移除產生 PDF 檔案不再需要的 Postscript 檔案。
自有 ID:OTP-11016
從測試案例記錄檔中紅色錯誤列印輸出(針對失敗的測試案例)新增了一個連結,指向記錄檔末尾的完整錯誤描述。原因是在紅色欄位中的錯誤描述有時會截斷為 50 個字元,以便使記錄檔盡可能簡短易讀。
自有 ID:OTP-11044 輔助 ID:seq12304
ct_telnet:expect/3 新增了一個選項 'no_prompt_check'。如果使用此選項,ct_telnet 在嘗試比對給定的模式之前,將不會等待提示符或換行符。
自有 ID:OTP-11095
Common_Test 1.7.1
已修正的錯誤和故障
如果在終止階段安裝在 CT Master 事件管理員中的事件處理常式花費太長時間回應,則 CT Master 會因 5 秒後逾時而崩潰。這會使系統處於不良狀態。此問題已透過 30 分鐘的逾時值解決,如果 CT Master 在該時間後逾時,現在會終止事件管理員並正確關閉。
自有 ID:OTP-10634 輔助 ID:kunagi-347 [258]
從 Common Test 安裝的事件處理常式中使用任何 ct 列印輸出函式進行列印,都會導致死鎖。此問題已解決。
自有 ID:OTP-10826 輔助 ID:seq12250
使用 force_stop 旗標/選項來中斷測試執行,會導致 Common Test 崩潰。此問題已解決。
自有 ID:OTP-10832
改進和新功能
已移除已棄用的 run_test 程式,請改用 ct_run。
*潛在的不相容性*
自有 ID:OTP-9052
已知錯誤和問題
測試案例執行時間會隨著測試執行的大小而增加。
自有 ID:OTP-10855
Common_Test 1.7
已修正的錯誤和故障
現在,
test_server
偵測到的嚴重錯誤(例如,如果無法建立記錄檔目錄)將回報給common_test
,並記錄在common_test
記錄檔中。自有 ID:OTP-9769 輔助 ID:kunagi-202 [113]
先前未記載的跨 cover 功能(用於累積多次測試的 cover 資料)現在已修正並記錄在文件中。
自有 ID:OTP-9870 輔助 ID:kunagi-206 [117]
如果忙碌的測試案例產生大量錯誤訊息,cth_log_redirect:post_end_per_testcase 會在等待錯誤記錄器完成處理所有錯誤報告時因逾時而崩潰。預設計時器為 5 秒。現在已延長至 5 分鐘。
自有 ID:OTP-10040 輔助 ID:kunagi-173 [84]
當測試案例因 timetrap 逾時而失敗時,該案例的
Config
資料會在後續呼叫end_per_testcase/2
時遺失,也會在呼叫 CT Hook 函式post_end_per_testcase/4
時遺失。此問題已解決,現在在 timetrap 逾時失敗後,Config
資料會正確傳遞到上述函式。自有 ID:OTP-10070 輔助 ID:kunagi-175 [86]
已從 ct_snmp 中移除一些呼叫 snmp 中已棄用和已移除的函式。
自有 ID:OTP-10088 輔助 ID:kunagi-176 [87]
在 test_server 中,相同的程序會監督目前正在執行的測試案例,並作為該測試案例的群組領導者(以及 IO 伺服器)。此外,當執行平行測試案例時,會產生新的臨時監督者/群組領導者程序,而作為循序測試案例群組領導者的程序將不會處於活動狀態。這會導致幾個問題
* 由 init_per_suite 啟動的程序會繼承 init_per_suite 程序的群組領導者(且當平行測試案例執行時,該群組領導者將不會處理 IO 請求)。如果稍後平行測試案例導致這類程序使用 (例如) io:format/2 列印,則呼叫會掛起。
* 同樣地,如果程序是從平行測試案例產生的,它會繼承該平行測試案例的臨時群組領導者。如果該產生的程序稍後 - 當平行測試群組完成後 - 嘗試列印某些內容,其群組領導者將會死亡,並出現
badarg
例外。這些問題已透過讓群組領導者與監督測試案例的程序分開來解決,並保持平行測試案例的臨時群組領導者程序處於活動狀態,直到系統中沒有其他程序將其用作群組領導者。
此外,還引入了一個新的
unexpected_io.log
記錄檔(可從每個測試套件的摘要頁面存取)。所有非預期的 IO 都會列印到其中(例如,對已完成的平行測試案例的群組領導者的 IO)。自身 ID:OTP-10101 輔助 ID:OTP-10125
ct_snmp:
中的一些錯誤修正- ct_snmp 現在會在設定 snmp 應用程式代理程式配置的 'variables' 參數時,使用 'agent_vsns' 配置變數的值。先前必須單獨完成此操作 - 即必須指定兩次支援的版本。
- Snmp 應用程式無法寫入 notify.conf,因為 ct_snmp 將通知類型給定為字串而不是原子。此問題已修正。
自身 ID:OTP-10432
ct_snmp
中的一些錯誤修正- 函式
register_users/2
、register_agents/2
和register_usm_users/2
,以及對應的unregister_*/1
函式無法執行。這些已修正/重寫。 - 函式
update_usm_users/2
已移除,並改為加入取消註冊函式。現在可以使用 unregister_usm_users,然後使用 register_usm_users 來完成更新。 - 加入函式
unregister_*/2
,因此可以取消註冊特定的使用者/代理程式/usm 使用者。 - 為完整性加入函式
unload_mibs/1
。 - 覆寫配置檔無法運作,因為檔案是寫入 priv_dir 而非配置目錄 (priv_dir/conf)。此問題已修正。
register_usm_users/2
的引數文件說明錯誤。此問題已修正。
自身 ID:OTP-10434 輔助 ID:kunagi-264 [175]
- 函式
common test 中錯誤匯出的規格已更正為
ct_netconfc:hook_options/0
和inet:hostname/0
自身 ID:OTP-10601
common_test 中的 netconf 用戶端在接收到資料後並未調整視窗。因此,用戶端會在一段時間後停止接收資料。此問題已修正。
自身 ID:OTP-10646
改進與新功能
現在可以讓測試規格包含其他測試規格。包含的規格可以與來源規格(以及所有其他加入的規格)合併,產生單一測試執行,或者可以在不同的測試執行中執行。此外,還引入了一個起始旗標/選項
join_specs
,與spec
選項結合使用。透過join_specs
,可以告訴 Common Test 合併多個測試規格,或將其分開執行。若沒有join_specs
,則後者為預設行為。請注意,這與先前版本的 Common Test 相比有所變更,在先前版本中,規格只能合併。更多資訊可以在《使用者指南》的「執行測試」章節中找到(請參閱「測試規格」小節)。*潛在的不相容性*
自身 ID:OTP-9881 輔助 ID:kunagi-350 [261]
ct_slave:start/3
函式現在支援{env,[{Var,Value}]}
選項,以擴充從屬節點的環境。自身 ID:OTP-10469 輔助 ID:kunagi-317 [228]
已修正一些超出 PDF 頁面寬度的範例。
自身 ID:OTP-10665
更新 common test 模組以處理 unicode
- 針對所有 HTML 檔案使用 UTF-8 編碼,除了使用 erl2html2:convert 產生的測試套件 HTML 版本外,該版本將具有與原始測試套件 (.erl) 檔案相同的編碼。
- 使用 test_server_ctrl:uri_encode/1 對 HTML 檔案中的連結目標進行編碼。
- 在適當情況下,將 unicode 修飾符 't' 與 ~s 一起使用。
- 使用 unicode:characters_to_list 和 unicode:characters_to_binary 在二進位和字串之間進行轉換,而不是使用 binary_to_list 和 list_to_binary。
自身 ID:OTP-10783
已知錯誤與問題
當 groups/0 崩潰時,CT 會捨棄錯誤原因。
自有 ID:OTP-10631 輔助 ID:kunagi-345 [256]
ct_master 節點上的事件處理常式導致掛起。
自有 ID:OTP-10634 輔助 ID:kunagi-347 [258]
在發生 timetrap 超時後,CT 無法開啟 telnet 連線。
自有 ID:OTP-10648 輔助 ID:seq12212
Common_Test 1.6.3.1
已知錯誤與問題
在 cth_surefire hook 中進行了以下更正/變更
- 先前在 'testsuites' 元素下始終會有 'properties' 元素。即使其中沒有 'property' 元素,也會存在此元素。現在已變更為,如果沒有要顯示的 'property' 元素,則也不會有 'properties' 元素。
- XML 檔案現在將(除非另有指定)儲存在最上層的記錄目錄中。先前,預設目錄將是 erlang 節點的目前工作目錄,這通常(但不一定)會是最上層的記錄目錄。
- 'testsuite' 元素中的 'hostname' 屬性先前從來沒有正確的值。此問題已修正。
- 'testsuite' 元素中的 'errors' 屬性先前會顯示失敗的測試案例數。現在已變更,且將始終具有值 0,而 'failures' 屬性將會顯示失敗的測試案例數。
- 在 'testsuite' 元素中加入了一個新的屬性 'skipped'。這將顯示略過的測試案例數。這些先前會包含在失敗的測試案例數中。
- 由 'testsuite' 元素中的 'tests' 屬性顯示的測試總數先前會包含 init/end_per_suite 和 init/end_per_group。現在已不再如此。 'tests' 屬性現在只會計算「實際」的測試案例。
- 先前,自動略過的測試案例在 'log' 屬性中不會有任何值。此問題已修正。
- 在 'testsuite' 元素中加入了一個新的屬性 'log'。
- 為此 hook 加入了一個名為 'url_base' 的新選項。如果使用此選項,則會在 'testcase' 和 'testsuite' 元素中加入一個名為 'url' 的新屬性。
自身 ID:OTP-10589
Common_Test 1.6.3
已修正的錯誤與故障
ct:run_test/1 選項 'config' 僅適用於單一配置檔,而不適用於檔案清單。此問題已修正。
自身 ID:OTP-10495
ct_netconfc:close_session 有時會傳回 {error,closed},因為 ssh 連線(從伺服器端)在用戶端收到 rpc-reply 之前關閉。這是正常的,而且無法避免。已修正為在這種情況下傳回 'ok'。其他錯誤情況仍會提供 {error,Reason}。
自身 ID:OTP-10510 輔助 ID:kunagi-320 [231]
ct_netconfc:close_session 有時會傳回 {error,closed} 或(如果連線已命名){error,{process_down,Pid,normal}},因為 ssh 連線(從伺服器端)在用戶端收到 rpc-reply 之前關閉。這是正常的,而且無法避免。已修正為在這種情況下傳回 'ok'。
自身 ID:OTP-10570
修正 ct:require 具有相同名稱和相同配置時會傳回 name_in_use 的錯誤。
自身 ID:OTP-10572
改進與新功能
已實作新的測試案例群組搜尋功能,使 Common Test 能自動搜尋群組定義樹狀結構(groups/0 的傳回值),並為符合規格的巢狀群組的所有路徑建立測試。它也允許指定子群組的唯一路徑,以避免執行不需要的測試。每當透過 ct_run 程式、ct:run_test/1 API 函式或測試規格啟動測試執行時,都可以使用此新功能。詳細資訊可以在「執行測試」章節中的「測試案例群組執行」小節中找到。
自身 ID:OTP-10466 輔助 ID:kunagi-276 [187]
已知錯誤與問題
如果測試案例失敗,則還原配置資料。
自有 ID:OTP-10070 輔助 ID:kunagi-175 [86]
test_server 中的 IO 伺服器錯誤。
自身 ID:OTP-10125 輔助 ID:OTP-10101, kunagi-177 [88]
common_test 中的錯誤連線處理。
自有 ID:OTP-10126 輔助 ID:kunagi-178 [89]
Common_Test 1.6.2.1
已修正的錯誤與故障
互動模式 (ct_run -shell) 無法正確啟動。此錯誤已修正。
自身 ID:OTP-10414
Common_Test 1.6.2
已修正的錯誤與故障
如果 CT hook 函式導致崩潰,在某些情況下可能會因為不合法的 IO 操作而導致 Common Test 終止。此錯誤已修正。
自身 ID:OTP-10050 輔助 ID:seq12039
Common Test 文件說明在執行 CT hook 函式期間,timetrap 永遠不會作用。這僅適用於後 hook 函式,而不適用於前 hook 函式。CT hook 的程式碼已修改為根據文件說明運作。
自身 ID:OTP-10069
如果 CT 鉤子函式呼叫 exit/1 或 throw/1 BIF(可能間接呼叫,例如由於 gen_server:call/3 中的逾時),則 Common Test 會掛起。此問題已修復。
自有 ID:OTP-10072 輔助 ID:seq12053
文件已更新,其中包含有關如何處理傳回 fail/skip 的鉤子鏈結的資訊。
自有 ID:OTP-10077 輔助 ID:seq12048
當 ct_hooks 呼叫多個鉤子的 id/1 函式時,它會反轉鉤子的順序,並以錯誤的順序呼叫後續的 init/2 呼叫。此問題已修復。
自有 ID:OTP-10135
surefire 鉤子現在可以正確處理自動跳過的初始化和測試函式。
自有 ID:OTP-10158
如果呼叫時正在執行平行測試案例群組,則 ct:get_status/0 函式無法報告狀態。此問題已修復,並且已更新函式的回傳值。請參閱 ct 參考手冊以取得詳細資訊。
自有 ID:OTP-10172
改進和新功能
對「靜默連線」的支援已更新,包括 ssh。此外,靜默連線詞彙已新增至測試規格詞彙集中。
自有 ID:OTP-9625 輔助 ID:seq11918
現在可以使用 require 和 ct:get_config 指定任意大小的元組作為 required config 資料。請參閱 ct:get_config 和 ct:require 參考手冊頁面,以取得有關允許哪些鍵的詳細資訊。
此變更在
ct:require/2
介面中引入了向後不相容性。先前在執行ct:require(a_name,{key,subkey})
時,a_name 會與 key 相關聯。此情況已變更為a_name
與subkey
相關聯。此變更也會影響在套件/群組/測試案例資訊函式中使用require
。*潛在的不相容性*
自有 ID:OTP-9626 輔助 ID:seq11920
ct_run 程式現在會在結束前設定 OS 程序結束狀態。值 0 表示測試結果成功,1 表示一個或多個測試案例失敗或自動跳過,而 2 表示測試執行失敗。
自有 ID:OTP-9865 輔助 ID:OTP-10087
現在可以透過按一下標頭元素來排序 HTML 表格。為了重設已排序的表格,應簡單地重新整理瀏覽器視窗。此功能要求瀏覽器支援 JavaScript,且已啟用 JavaScript 執行。如果使用 'ct_run -basic_html' 旗標,則產生的 HTML 程式碼中不會包含任何 JavaScript 程式碼。
自有 ID:OTP-9896 輔助 ID:seq12034, OTP-9835
netconf 用戶端 ct_netconfc 已新增至 common_test。它支援透過 SSH 的基本 netconf 功能。為了允許測試成功和失敗案例,它有意編寫為允許非標準行為。
自有 ID:OTP-10025
已引入測試規格詞彙 {define,Constant,Value},這使得可以在任意測試規格詞彙中使用值 (term()) 取代常數名稱 (atom())。「define」使(現在已棄用的)「alias」詞彙過時。更多詳細資訊(包括範例)可以在 Common Test 使用者指南的測試規格章節中找到。
自有 ID:OTP-10049
已新增記錄輸出的詳細程度。這使得可以為不同類別的記錄輸出以及一般輸出(例如標準 IO)指定偏好的詳細程度,以允許控制哪些字串會列印,哪些會忽略。已引入新版本的 Common Test 記錄函式 ct:log、ct:pal 和 ct:print,並新增了新的 Importance 引數。Importance 值會在執行階段與詳細程度比較。更多資訊可以在 Common Test 使用者指南中有關記錄的章節中找到。
自有 ID:OTP-10067 輔助 ID:seq12050
ct:run_test/1 和 ct:run_testspec/1 的回傳值已從不具資訊性的 'ok'(與測試結果無關)變更為值 {Ok,Failed,{UserSkipped,AutoSkipped}}(全部為整數),其中顯示最終測試案例結果,或是值 {error,Reason},其中通知測試執行嚴重失敗。請參閱 ct 的參考手冊以取得詳細資訊。
自有 ID:OTP-10087 輔助 ID:OTP-9865
測試規格語法已使用新的和遺失的詞彙進行更新,例如 'define'、'verbosity'、'auto_compile'、'stylesheet'、'silent_connections'、'basic_html' 和 'release_shell'。請參閱 Common Test 使用者指南的測試規格章節以取得詳細資訊。
自有 ID:OTP-10089 輔助 ID:OTP-10049
現在可以透過呼叫 ct:break/1/2 函式來暫停測試案例的執行。透過呼叫 ct:continue/0/1 來繼續執行。中斷/繼續也適用於平行執行的測試案例。請參閱 ct 參考手冊以取得詳細資訊。
自有 ID:OTP-10127
現在可以從測試案例傳送使用者定義的事件,這些事件將由已安裝的事件處理常式擷取。
自有 ID:OTP-10157
已新增 ct:run_test/1 的新啟動選項 release_shell,這使得 Common Test 可以在測試套件編譯階段完成後釋放 shell 程序。如需詳細資訊,請參閱使用者指南中的執行測試章節。
自有 ID:OTP-10248 輔助 ID:OTP-10127
Common_Test 1.6.1
已修復的錯誤和故障
Common Test 會在執行測試之前將測試套件目錄新增至程式碼路徑。這些目錄也應在測試執行結束時從程式碼路徑中移除,而在本次修復之前,並未執行此操作。
自有 ID:OTP-9595
現在會在 index.html 檔案(即測試執行的概觀檔案)中為測試執行期間的每個重複測試建立一個項目。先前並非如此。請注意,在頂層 (logdir) 索引檔案中,只會列出最後一個測試結果。例如,假設有測試規格:[{merge_tests,false},{dirs,"test1"},{dirs,"test1"}]。在測試執行的索引檔案中(在 Logdir/ct_run.Node.Date.Time 下方),會列出兩個測試。在頂層索引檔案中(在 Logdir 下方),只會列出最後一個測試(必須透過 all_runs.html 檔案找到先前的結果)。
自有 ID:OTP-9634 輔助 ID:seq11924
在測試案例逾時或中止後,end_per_testcase 函式會在新的專用程序上執行。此程序的群組領導者應設定為測試案例的 IO 伺服器,而先前並未正確設定。此錯誤的結果是測試案例記錄中永遠不會列印出關於 end_per_testcase 失敗或逾時的警告。此外,例如 test_server:stop_node/1 等嘗試與 IO 伺服器同步的協助函式會掛起。錯誤已修正。
自有 ID:OTP-9666
如果呼叫時沒有執行任何測試,則 ct:get_status/0 函式會導致呼叫程序接收 'DOWN' 訊息。此錯誤已修復。
自有 ID:OTP-9830 輔助 ID:seq11975
如果 Common Test 同時將 error_handler 輸出轉發到測試伺服器,並且正在啟動新的測試案例,則可能會發生死鎖情況。此錯誤已修復。
自有 ID:OTP-9894
現在會在「make install」期間,如預期地在安裝 bin 目錄(預設為 /usr/local/bin)中建立 ct_run 程式的連結。
自有 ID:OTP-9898
使用 ct:run_test/1 的 repeat、duration 或 until 選項會導致無限迴圈。此問題已修復。
自有 ID:OTP-9899
兩個或多個平行執行的測試案例,並同時使用 ct:pal/2/3 或 ct:print/2/3 列印到螢幕時,可能會寫入彼此的「插槽」並產生混亂的混合字串。為了避免這種情況,現在每次輸出呼叫只會傳送一條 IO 訊息。
自有 ID:OTP-9900 輔助 ID:OTP-9904
當測試案例因為 timetrap 逾時而終止時,目前的執行位置(套件、案例和行)不會正確列印在記錄檔中。此問題已修正。
自有 ID:OTP-9930 輔助 ID:seq12002
當呼叫 ct:fail/1 或 ct_fail/2 時,記錄檔中會列印錯誤的結束位置。
自有 ID:OTP-9933 輔助 ID:seq12002
測試伺服器和 Common Test 會在每次測試執行時新增新的錯誤處理常式,並且無法移除先前新增的錯誤處理常式。如果測試節點上未執行 SASL,則測試伺服器才會發生這種情況。此問題已修復。
自有 ID:OTP-9941 輔助 ID:seq12009
如果測試案例程序由於連結程序的結束訊號而終止,則測試伺服器無法向框架報告套件和案例的正確名稱。此問題已修正。
自有 ID:OTP-9958 輔助 ID:OTP-9855
當使用 ct_run 啟動測試並使用 -pa 或 -pz(在 -erl_args 之前)將目錄新增至程式碼路徑時,Common Test 會刪除程式碼路徑中任何具有與所新增目錄相同基本名稱(請參閱 filename:basename/1)的現有目錄。此問題已修復。
自有 ID:OTP-9964
如果使用 ct_run -pa 將兩個或多個具有相同基本名稱(請參閱 filename:basename/1)的目錄傳遞到 Common Test,則只會實際新增其中一個目錄。
自有 ID:OTP-9975 輔助 ID:seq12019
群組資訊函式所需的組態資料會在呼叫 post_end_per_group 之前刪除,這使得鉤子函式無法讀取和使用相關資料。此問題已修復。
自有 ID:OTP-9989
測試規格中停用內建鉤子會被忽略,現在已修復。
自有 ID:OTP-10009
修正了 common_test、driver、erl_driver 和 Windows 安裝說明文件中各種排版錯誤。(感謝 Tuncer Ayaz)
自有 ID:OTP-10037
改進和新功能
已引入一個新的選用功能,使 Common Test 能夠產生每個測試案例或組態函式唯一的 priv_dir 目錄名稱。選項/旗標的名稱為 'create_priv_dir',並且可以將其設定為值 'auto_per_run'(這是預設的現有行為),或 'auto_per_tc' 或 'manual_per_tc'。如果使用 'auto_per_tc',則測試伺服器會自動為每個測試案例建立專用的 priv_dir(如果案例數量眾多和/或重複,則可能會非常昂貴)。如果使用 'manual_per_tc',則使用者需要透過呼叫新的函式 ct:make_priv_dir/0 來明確建立 priv_dir。
自有 ID:OTP-9659 輔助 ID:seq11930
已將測試案例群組名稱的欄新增至套件概觀 HTML 記錄檔。
自有 ID:OTP-9730 輔助 ID:seq11952
現在可以使用 post_end_per_testcase CT 鉤子函式在概觀記錄檔中列印測試案例的註解,即使測試案例由於 timetrap 或未知的結束訊號而終止,或者 end_per_testcase 函式逾時也是如此。
自有 ID:OTP-9855 輔助 ID:seq11979
現在始終會為所有組態函式呼叫 pre- 和 post CT 鉤子函式,即使組態函式未在測試套件中實作也一樣。
自有 ID:OTP-9880 輔助 ID:seq11993
當測試案例失敗時,Common Test 現在會立即在測試案例記錄檔中列印錯誤資訊(包含時間戳記)。這使得更容易看到故障實際發生的時間,並有助於在記錄中找到相關的追蹤和偵錯輸出。
自有 ID:OTP-9904 輔助 ID:seq11985, OTP-9900
測試伺服器已修改為在接收錯誤記錄器事件時檢查 SASL errlog_type 參數,以便它不會列印使用者已停用的類型報告。
自有 ID:OTP-9955 輔助 ID:seq12013
測試規範術語 'skip_groups' 已在 Common Test v1.6 中實作。然而,它從未被記錄在文件中,現在已處理此事。請參閱使用者指南中的「測試規範」章節以獲取相關資訊。
內部 ID:OTP-9972
已更新 Common Test Master 以使用 CSS 樣式表來呈現 HTML 日誌檔案。
內部 ID:OTP-9973
如果測試套件中未實作 init_per_group/2 和 end_per_group/2 函式,當執行群組時,Common Test 會呼叫其自身的本地 init 和 end 函式,先前分別名為 ct_init_per_group/2 和 ct_end_per_group/2。這些函式已分別重新命名為 init_per_group/2 和 end_per_group/2。請注意,這可能會影響任何使用舊名稱識別事件的使用者事件處理常式。
*潛在的不相容性*
內部 ID:OTP-9986 輔助 ID:OTP-9992
現在可以透過資訊函式或呼叫 ct:timetrap/1,指定使用者定義的函式 ({M,F,A} 或 fun) 作為 timetrap 值,當使用者函式返回時,將會觸發 timetrap。
內部 ID:OTP-9988 輔助 ID:OTP-9501, seq11894
如果測試套件中未實作選擇性的組態函式 init_per_suite/1 和 end_per_suite/1,則會改為呼叫 Common Test 的本地版本,並將顯示在概觀日誌檔案中。由 pre- 或 post_init_per_suite 和 pre- 或 post_end_per_suite hook 函式產生的任何列印輸出都會儲存在這些函式的日誌檔案中。
內部 ID:OTP-9992
Common Test 新增了一個 hook,可輸出 surefire XML,以搭配 Jenkins 等 CI 工具使用。若要啟用此 hook,請將 '-ct_hooks cth_surefire' 傳遞給 ct_run。請參閱 CTH 文件以瞭解更多詳細資訊。
內部 ID:OTP-9995
Common_Test 1.6
改進和新功能
已在 Common Test 使用者指南中新增「入門」章節。
內部 ID:OTP-9156
已在 Common Test 中實作測試案例群組資訊函式。在執行測試案例群組之前,現在會呼叫
TestSuite:group(GroupName)
。此函式會傳回測試屬性的清單,例如指定 timetrap 值、請求組態資料等(類似於測試套件和測試案例資訊函式)。由group(GroupName)
設定的屬性範圍為群組GroupName
的所有測試案例和子群組。內部 ID:OTP-9235
Common Test hook 現在已是最終支援的版本。Common Test hook 可讓您將多個測試套件共有的初始化行為抽象化到一個位置,並且在不變更套件本身的情況下擴展套件的行為。如需詳細資訊,請參閱 Common Test 使用者指南。
內部 ID:OTP-9449
新增了一個內建的 Common Test hook,可擷取 error_logger 和 SASL 事件,並將它們列印在測試案例日誌中。若要停用此功能(以及任何其他內建 hook),請將 'enable_builtin_hooks false' 傳遞給 Common Test。
內部 ID:OTP-9543
Common Test 現在也會針對
init/end_per_suite/1
和init/end_per_group/2
組態函式呼叫資訊函式。這些函式可用於例如設定 timetraps 和請求僅與相關組態函式相關的外部組態資料(而不會影響為套件中的群組和測試案例設定的屬性)。init/end_per_suite(Config)
的資訊函式為init/end_per_suite()
,而init/end_per_group(GroupName,Config)
的資訊函式為init/end_per_group(GroupName)
。資訊函式不能與init/end_per_testcase(TestCase, Config)
一起使用,因為這些組態函式在測試案例處理程序上執行,並且將使用與測試案例相同的屬性(即測試案例資訊函式TestCase()
設定的屬性)。內部 ID:OTP-9569
現在可以在執行期間讀取測試案例日誌檔案的完整名稱。其中一種方法是在測試案例
Config
清單中將其查詢為索引鍵tc_logfile
的值(這表示也可以由 pre- 或 post Common Test hook 函式讀取)。資料也會與事件#event{name=tc_logfile,data={{Suite,Func},LogFileName}}
一起傳送,並且可以由任何已安裝的事件處理常式讀取。內部 ID:OTP-9676 輔助 ID:seq11941
Common Test 和 Test Server 產生的 HTML 日誌檔案的外觀已透過 CSS 檔案得到改進(且更易於自訂)。
內部 ID:OTP-9706
已新增函式 ct:fail(Format, Args) 和 ct:comment(Format, Args),以便更輕鬆地列印格式化的錯誤和註解字串(使用者無需明確呼叫 io_lib:format/2)。
內部 ID:OTP-9709 輔助 ID:seq11951
已反轉清理 hook(即 _end_per_hook)的 ct hook 執行順序。
*潛在的不相容性*
內部 ID:OTP-9774 輔助 ID:seq11913
可以在測試案例執行期間擷取 stdout 的列印輸出。這在例如從測試案例執行期間從 SUT 讀取和剖析 tty 列印輸出(如有必要,例如,判斷測試結果)時非常有用。擷取階段使用
ct:capture_start/0
開始,並使用ct:capture_stop/0
停止。緩衝字串清單使用ct:capture_get/0/1
讀取和清除。可以從擷取的字串清單中篩選出使用ct:log/2/3
和ct:pal/2/3
產生的列印輸出。這可以透過使用要排除的日誌類別清單呼叫capture_get/1
來完成。內部 ID:OTP-9775
已擴展 all/0 清單中指定測試案例群組的語法,以包含群組和子群組的執行屬性。在 all/0 中為群組指定的屬性會覆寫群組宣告 (在 groups/0 中) 中指定的屬性。此擴展的主要目的是在不宣告相關群組的副本的情況下,能夠以不同的屬性執行相同的測試集。此外,相同的語法可以用在測試規格中,以便在執行時變更群組的屬性,而無需編輯測試套件。請參閱使用者指南以瞭解詳細資訊和範例。
內部 ID:OTP-9809 輔助 ID:OTP-9235
已知錯誤和問題
修正 CT/TS 中因例外狀況中的行號而導致的問題。
內部 ID:OTP-9203
Common_Test 1.5.5
已修正的錯誤和故障
已更正測試套件概觀 HTML 日誌檔案中註解著色的錯誤。因此,已引入新的框架回呼函式 format_comment/1。
內部 ID:OTP-9237
自動產生的測試案例群組的 init 和 end 組態函式導致測試案例的執行順序不正確。此問題已修正。
內部 ID:OTP-9369
如果使用 'logdir' 旗標/選項指定多個目錄,Common Test 會崩潰。此問題已修正,現在會正確回報錯誤。
內部 ID:OTP-9370
如果使用錯誤的引數呼叫 ct:log/2,可能會導致 Common Test IO 處理程序崩潰。此錯誤已修正。
內部 ID:OTP-9371 輔助 ID:OTP-8933
已修正一個錯誤,該錯誤導致 Test Server 使用不正確的模組名稱作為第一個引數呼叫 end_tc/3 框架函式。
內部 ID:OTP-9379 輔助 ID:seq11863
如果在 lib 模組中執行函式期間(即直接或間接從測試案例呼叫的函式)發生 timetrap 超時,則 end_tc/3 框架回呼函式中的 Suite 引數不會正確包含測試套件的名稱,而是 lib 模組的名稱。(僅當 lib 模組包含 ct.hrl 編譯時才會發生這種情況)。此錯誤已解決。
內部 ID:OTP-9398
修正 vts 模式。現在它會回報錯誤(例如,關於不正確的組態檔案),而不是崩潰或掛起。此外,已移除測試目錄名稱必須具有 "_test" 後綴的要求。此外,已實作一種因應措施,以解決檔案瀏覽器(在許多 Web 瀏覽器中)僅傳回基本檔案名稱,而不傳回完整目錄路徑的限制(這使得無法在主要測試目錄以外的其他目錄中放置組態檔案)。
內部 ID:OTP-9429
新增 proplist() 類型
最近,我正在為 API 新增規格,發現沒有定義標準的 proplist() 類型。(感謝 Ryan Zezeski)
內部 ID:OTP-9499
現在可以使用 'step' 旗標/選項為包含測試案例群組的測試套件執行偵錯程式。先前這會導致 Common Test 崩潰。如果指定 'step config',現在也會自動在 init_per_group 和 end_per_group 上設定中斷點。請注意,中斷點始終自動在測試案例函式上設定,對於分組的案例也是如此。
內部 ID:OTP-9518 輔助 ID:OTP-8933
測試索引頁面未在每個測試套件開始時重新整理,這使得無法透過重新整理瀏覽器視窗來追蹤測試執行(沒有連結可追蹤)。此問題已修正。
內部 ID:OTP-9520 輔助 ID:OTP-8933
如果測試套件以未定義 init_per_group/2 和 end_per_group/2 函式的測試案例群組開始,則 init_per_suite/1 最初不會執行,且測試執行的記錄會失敗。此錯誤已修正。
內部 ID:OTP-9584
頂層索引頁面中的「遺失的套件」連結不正確,此問題已修正。
內部 ID:OTP-9592
改進和新功能
各種更正和更新,以改進錯誤的處理和回報。
內部 ID:OTP-8933
dir 和 suite 開始選項現在可以結合使用。例如,在目錄 my_tests 中執行 my_SUITE 可以指定為 "ct_run -suite my_tests/my_SUITE" 或 "ct_run -dir my_tests -suite my_SUITE"。此外,規格:ct:run_test([{suite,["./my_SUITE"]},{testcase,t1}]) 現在會被解讀為 ct:run_test([{suite,"./my_SUITE"},{testcase,t1}]),即只會執行測試套件 my_SUITE 中的測試案例 t1,而不是所有案例。
內部 ID:OTP-9155
已引入一個新選項 'logopts',以便能夠修改 Common Test(或 Test Server)中記錄行為的某些方面。例如,每當進行 io 列印輸出時,test_server 都會將換行符號 (\n) 新增至輸出字串的末尾。這可能不一定是首選動作,因此可以透過 "ct_run ... -logopts no_nl"(或 ct:run_test([..., {logopts,[no_nl]}]))停用此功能。已引入新的框架回呼函式 get_logopts/0(請參閱 ct_framework 模組以瞭解詳細資訊)。
內部 ID:OTP-9372 輔助 ID:OTP-9396
新增了一個選項 'logopts',使得可以修改 Common Test (或 Test Server) 中日誌記錄行為的某些方面。 例如,如果測試執行期間不應產生測試套件原始碼的 HTML 版本 (因此在日誌檔案系統中不可用),則可以透過 "ct_run ... -logopts no_src" (或 ct:run_test([..., {logopts,[no_src]}])) 停用此功能。 新增了一個新的框架回呼函式 get_logopts/0 (詳情請參閱 ct_framework 模組)。
自有 ID:OTP-9396 輔助 ID:seq11869, OTP-9372
現在可以為 CT Hooks 指派優先順序。CTH 的優先順序決定了它相對於其他 CTH 的執行時間。優先順序最低的 CTH 將首先執行,優先順序相同的 CTH 將按照它們安裝的順序執行。
自有 ID:OTP-9445
現在可以在套件資訊函數或測試案例資訊函數中使用元組 {M,F,A} 或 fun 作為 timetrap 規格。該函數必須傳回一個有效的逾時值,如 common_test 手冊頁和使用者指南中所述。
自有 ID:OTP-9501 輔助 ID:seq11894
新增了一個內建的 Common Test hook,可擷取 error_logger 和 SASL 事件,並將它們列印在測試案例日誌中。若要停用此功能(以及任何其他內建 hook),請將 'enable_builtin_hooks false' 傳遞給 Common Test。
內部 ID:OTP-9543
Common Test 現在可以擁有內建的 hooks,這些 hooks 在執行任何測試時預設啟動。若要停用內建的 hooks,請將 'enable_builtin_hooks false' 傳遞給 Common Test。有關更多詳細資訊,請參閱 Common Test hooks 文件。
自有 ID:OTP-9564
Common_Test 1.5.4
已修復的錯誤和故障
先前無法在 ct:timetrap/1 中使用 timetrap 值 'infinity'。此問題已修復。
自有 ID:OTP-9159
Common Test VTS 模式已更新,能夠報告包含測試案例群組的套件的測試結果 (先前會在此情況下崩潰)。
自有 ID:OTP-9195
Common Test 現在會在測試執行中每次個別測試開始時重新整理最頂層的 index.html 頁面,以便可以透過追蹤其概觀頁面的連結來追蹤正在進行的測試進度。
自有 ID:OTP-9210 輔助 ID:OTP-9054
修正了在呼叫 ct:timetrap/1 時無法取消先前 timetrap 的錯誤。
自有 ID:OTP-9233 輔助 ID:OTP-9159
修正了當在 suite/0 中新增 cth 時,在 pre_init_per_suite 中超出範圍時,會導致 cth 無法移除並崩潰的錯誤。
自有 ID:OTP-9264
改進和新功能
現在可以從 init_per_testcase/2 傳回元組 {fail,Reason}。結果是相關的測試案例會被記錄為失敗,而不會實際執行。
自有 ID:OTP-9160 輔助 ID:seq11502
Common Test 現在接受但會忽略空的測試案例群組規格。
自有 ID:OTP-9161
Common_Test 1.5.3
已修復的錯誤和故障
在測試規格中新增了一個選項,允許按原樣執行測試,而不是在同一「層級」上合併測試。請參閱測試規格文件的 merge_tests 指令。
自有 ID:OTP-9026 輔助 ID:seq11768
改進和新功能
Common Test Hooks (CTH) 的 Alpha 版本。CTH 允許 common test 的使用者以比以前更優雅和更靈活的方式從測試套件中抽象出常見的行為。請注意,此功能的加入可能會在 common_test 和 test_server 之間的介面中引入未記錄行為的細微變化。
*潛在的不相容性*
自有 ID:OTP-8851
Common_Test 1.5.2
已修復的錯誤和故障
更新了 ct:get_status 文件以描述 no_tests_running 回傳值。
自有 ID:OTP-8895 輔助 ID:seq11701
修正了在測試 common test 並行群組功能的測試套件中發生的競爭條件測試失敗。
自有 ID:OTP-8921
當在遠端節點上使用時,testspecs 的 include 指令現在可以正常運作。
自有 ID:OTP-8935 輔助 ID:seq11731
改進和新功能
ct:parse_table 現在可以處理多行 sql 列。
自有 ID:OTP-8907 輔助 ID:seq11702
run_test 可執行檔已重新命名為較不通用的 ct_run,以便更好地與其他應用程式搭配使用。run_test 將保留到 R16B,屆時將移除。
自有 ID:OTP-8936
Common_Test 1.5.1
已修復的錯誤和故障
從序列中的群組中的 end_per_group 傳回 {return_group_result,failed} 不會導致跳過後續的案例 (或群組)。此問題已修復。
自有 ID:OTP-8753 輔助 ID:seq11644
ct:install 現在按照文件中的描述運作。
自有 ID:OTP-8818 輔助 ID:seq-11666
改進和新功能
Common Test 已更新,可以處理測試案例群組 (和群組中的測試案例) 的啟動選項和測試規格術語。此外,還新增了一個名為 'label' 的選項,該選項將測試執行與 Common Test 在概觀 HTML 日誌中列印的名稱相關聯。
自有 ID:OTP-8725 輔助 ID:OTP-8727
Andrey Pampukha 已新增至 AUTHORS 檔案。感謝 Andrey 在組態資料處理、大規模測試改進以及其他有用的更新和修正方面的工作。
自有 ID:OTP-8803
已更新使用者指南中的組態資料章節。
自有 ID:OTP-8804
毫秒現在包含在 Common Test 日誌條目的時間戳記中。(感謝 Tomas Johansson。)
自有 ID:OTP-8808
Common_Test 1.5
已修復的錯誤和故障
在 Common Test 中使用監視器的程序呼叫不會清除收件匣中剩餘的 DOWN 訊息。此問題已修復。
自有 ID:OTP-8621 輔助 ID:seq11560
改進和新功能
現在使用者可以提供特定的回呼模組來處理測試組態資料,以便可以存取任意形式的資料 (例如,透過讀取檔案或與組態伺服器程序通訊)。Common Test 中引入了兩個預設回呼模組:ct_config_plain 和 ct_config_xml。前者用於處理傳統的 Common Test 組態檔案 (包含鍵值元組形式的術語),後者用於處理 XML 表示形式的組態資料。
自有 ID:OTP-8485
現在可以執行不一定在本機檔案系統上可用的測試套件,而是已預先載入測試節點 (例如,從遠端節點以二進位檔形式傳送並透過 RPC 載入)。要求是已設定 no_auto_compile (或 {auto_compile,false}) 參數。
自有 ID:OTP-8490 輔助 ID:seq11500
即使測試案例已明確終止 (透過 abort_current_testcase/1) 或在 timetrap 逾時後,Test Server 現在也會呼叫 end_per_testcase/2 函數。在這些情況下,end_per_testcase 的回傳值將完全被忽略。因此,該函數將無法透過傳回 {fail,Reason} 來變更測試案例終止的原因,也無法透過 {save_config,Data} 來儲存資料。
自有 ID:OTP-8500 輔助 ID:seq11521
現在可以使用測試規格術語 'init' 自動啟動 Common Test 節點,並在節點上評估初始函數呼叫。已引入 'init' 術語的預設回呼模組 ct_slave,以便 Common Test Master 可以透過 ssh 執行主機登入和節點啟動操作。
自有 ID:OTP-8570
run_test 指令碼已由一個 (同名) 程式取代,該程式可以無需明確安裝即可執行。啟動旗標與舊版啟動指令碼相同。
自有 ID:OTP-8650
先前,測試案例群組的 repeat 屬性指定了在主要測試執行後應重複執行群組的次數。也就是說,{repeat,N} 將會導致群組執行 1+N 次。為了與 run_test repeat 選項的行為一致,此行為已變更。N 現在指定絕對執行次數。
自有 ID:OTP-8689 輔助 ID:seq11502
使用 run_test -erl_args 選項,可以將 run_test 命令列上的選項分為 Common Test 應處理的選項 (在 -erl_args 之前的選項) 和應忽略的選項 (在 -erl_args 之後的選項)。Common Test 無法辨識的 -erl_args 之前的選項也會被忽略 (即與先前版本的 Common Test 相同的行為)。
自有 ID:OTP-8690 輔助 ID:OTP-8650
在 run_test 命令列的 pre-erl_args 部分中使用 -pa 或 -pz 新增的目錄將從相對轉換為絕對,以避免當 Common Test 在測試執行期間切換工作目錄時載入使用者模組時出現問題。
自有 ID:OTP-8691 輔助 ID:OTP-8650
透過新的啟動選項和新的 ct 介面函數,timetrap 處理已變得更易於使用者控制。透過 'multiply_timetraps' 啟動選項,可以指定一個值,所有 timetrap 逾時值都會乘以該值。例如,在執行 cover 或 trace 時,這對於臨時延長 timetrap 非常有用。 'scale_timetraps' 啟動選項會開啟或關閉 Test Server timetrap 縮放功能 (該功能會嘗試偵測測試是否可以從延長 timetrap 中受益,例如由於執行某些測試工具,並自動執行縮放)。此外,還引入了 ct:timetrap/1 函數,該函數可以在測試執行期間設定/重設 timetrap。此外,現在還提供 ct:sleep/1 函數,該函數在計算暫停程序的時間時會考慮 timetrap 參數。
自有 ID:OTP-8693
新增了一個新的 run_test 啟動選項 event_handler_init,它會採用一個啟動參數,該參數會傳遞給事件處理常式的 init 函數。
自有 ID:OTP-8694
Common_Test 1.4.7
已修復的錯誤和故障
Common Test 的自動編譯功能在測試套件中包含標頭檔被修改時,無法識別 (如果使用了 dir 啟動旗標/選項)。此問題已修正。
自身 ID:OTP-8396 輔助 ID:seq11488,OTP-8311
改進與新功能
因 timetrap 超時而失敗的測試案例,其組態列表中的 tc_status 值已從 {tc_status,timeout} 變更為 {tc_status,timetrap_timeout}。
自身 ID:OTP-8302
在修正了一些錯誤並在文件建置過程中新增了一些功能後,現在可以在開放原始碼環境中建置文件。
- 已更新算術計算。
- 在產生的連結中,bif 函數名稱中使用的模組前綴已移除,因此連結看起來會像 "https://erlang.dev.org.tw/doc/man/erlang.html#append_element-2" 而不是 "https://erlang.dev.org.tw/doc/man/erlang.html#erlang:append_element-2"。
- 增強了載入新頁面時 html 文件中選單的定位。
- 修正了 man page 生成中的一些錯誤 (感謝 Sergei Golovan)
- 法定通知取自 xml book 檔案,因此 OTP 的建置過程可以用於非 OTP 的應用程式。
自身 ID:OTP-8343
現在可以使用 -include_lib 指令來包含
ct.hrl
。(感謝 Fred Hebert.)自身 ID:OTP-8379
Common Test 中的 telnet 客戶端會傳送 [IAC,DO,NOP] 給伺服器,試圖保持連線。根據標準,這不是有效的序列,一些 telnet 伺服器會因此終止連線。客戶端已變更為每 10 秒傳送 [IAC,NOP],這應該是有效的序列。客戶端不會與伺服器協商此類型的「保持連線」訊息,如果這造成問題,使用者可以將 {keep_alive,false} 新增至伺服器/連線的 telnet 組態資料中,來停用保持連線功能。詳細資訊請參閱 ct_telnet 和 unix_telnet 手冊頁面。
自身 ID:OTP-8450 輔助 ID:OTP-8311
Common_Test 1.4.6
修正的錯誤與故障
如果 init_per_testcase/2 函數失敗,則測試案例現在會標記為自動跳過,而非使用者跳過 (先前會發生此情況)。
自身 ID:OTP-8289
改進與新功能
現在使用大多數平台上都存在的開放原始碼工具 (xsltproc 和 fop) 來建置文件。一個明顯的變化是框架已移除。
自身 ID:OTP-8201
對於失敗的測試案例,tc_done 事件應回報 {failed,Error} 形式的資訊。但先前只回報了 Error,此問題已修正。
自身 ID:OTP-8235 輔助 ID:seq-11414
現在可以從 end_per_testcase/2 函數中傳回 {fail,Reason},來使測試案例失敗。
自身 ID:OTP-8284
現在可以透過讓 end_tc/3 框架函數傳回測試案例的 {fail,Reason},來使測試案例失敗。
自身 ID:OTP-8285
已修改 test_server 框架 API (例如,end_tc/3 函數)。詳細資訊請參閱 test_server_ctrl 文件。
自身 ID:OTP-8286 輔助 ID:OTP-8285,OTP-8287
已實作測試事件的各種更新。已修改部分事件 (例如 tc_done 和 tc_auto_skip) 的資料欄位,以便更容易且更一致地對資料進行模式比對。此外,也變更了接收部分事件的順序。例如,測試案例的 tc_auto_skip 事件現在會出現在失敗的組態函數的 tc_done 之後 (而不是之前),這更有意義。請注意,沒有新增任何新事件,且事件記錄保持不變。
自身 ID:OTP-8287 輔助 ID:OTP-8235
已應要求移除在 all_runs.html 頁面上用於測試名稱的跑馬燈效果。請注意,測試名稱欄位在標題標籤中具有完整的文字字串,當滑鼠指標懸停在其上方時會顯示該字串 (也就是說,如果網頁瀏覽器支援標題標籤)。
自身 ID:OTP-8288
現在可以透過在 ct:run_test/1 選項列表中指定 {refresh_logs,LogDir} 元組,來重新整理任意記錄目錄中的頂層索引檔案。此外,run_test 腳本的 -refresh_logs 旗標已擴充為接受可選的 LogDir 引數,也就是 -refresh_logs [LogDir]。如果未指定 LogDir,則會假設為目前的工作目錄,除非使用 -logdir 旗標設定了記錄目錄。
自身 ID:OTP-8290
先前要求測試套件必須位於名為「test」的測試物件 (或 OTP 應用程式) 子目錄下 (或位於名為「<testobject>_test」的目錄下)。此問題已變更,現在 Common Test 主要只會在測試子目錄存在的情況下,於其中尋找套件。否則,它會假設套件儲存在使用者使用例如 'dir' 啟動旗標/選項指定的相同目錄中。
自身 ID:OTP-8294
Common_Test 1.4.5
修正的錯誤與故障
如果序列 (使用 sequences/0 宣告) 中的測試案例失敗,Common Test 記錄器程序會崩潰。此故障已修正。
自身 ID:OTP-8089 輔助 ID:seq11334
改進與新功能
Common Test 和測試伺服器中的各種更新和修正。
自身 ID:OTP-8045 輔助 ID:OTP-8089、OTP-8105、OTP-8163
難以偵測覆蓋率資料收集和分析中的錯誤。已改善記錄,以便將更多關於例如匯入和遺失模組的資訊列印到 html 記錄檔案中。
自身 ID:OTP-8163 輔助 ID:seq11374
已改善 Common Test HTML 概觀頁面。現在可以查看測試案例是否已明確跳過,或是因為組態函數失敗而跳過。此外,歷史記錄頁面 (all_runs.html) 現在具有顯示測試名稱的捲動文字。仍然可以使用旗標/選項 'basic_html' 來產生舊格式 (將名稱顯示為截斷的字串)。
自身 ID:OTP-8177
Common_Test 1.4.2
改進與新功能
Common Test 和測試伺服器的各種更正和改進。
自身 ID:OTP-7981
Common_Test 1.4.1
改進與新功能
微小的更新和更正。
自身 ID:OTP-7897
Common_Test 1.4
改進與新功能
Common Test 中引入了 SSH 和 SFTP 的支援用戶端模組 ct_ssh。
自身 ID:OTP-7838
已引入測試案例群組。有了此功能,就可以執行測試案例的群組 (可能為巢狀結構),每個群組都會以對函數 init_per_group/2 和 end_per_group/2 的呼叫包裝。群組定義是透過新的回呼函數 groups/0 完成,該函數應傳回定義列表。群組定義包含名稱標籤、屬性列表和測試案例列表 (包含可能的巢狀群組定義)。屬性可以平行、依序和隨機順序執行測試案例。也可以根據不同的條件重複測試案例。屬性可以組合,因此可以例如重複執行組態案例特定次數,並每次以不同的 (隨機) 順序執行測試案例。可用的屬性為:平行、序列、隨機、重複、重複直到全部正常、重複直到任何正常、重複直到任何失敗以及重複直到全部失敗。詳細資訊請參閱 Common Test 使用者指南。
自身 ID:OTP-7839 輔助 ID:OTP-7511
現在可以將 DES3 加密的組態檔案與 Common Test 搭配使用。
自身 ID:OTP-7842 輔助 ID:OTP-7838
在先前版本的 Common Test 中,每個組態目標名稱只能開啟一個 FTP 連線。此問題已更新,因此可以開啟多個連線。仍然支援使用具名連線的可能性。
自身 ID:OTP-7853 輔助 ID:OTP-7838
已使用 Common Test 和 TS 的新增和修改框架來更新 Emacs 的 Erlang 模式。已新增 Common Test 中測試案例群組的語法 (以及 TS 中具有屬性的組態案例),並引入了新的最小 Common Test 套件框架。
自身 ID:OTP-7856
Common_Test 1.3.6
修正的錯誤與故障
當執行包含測試目錄中所有套件的測試時,如果一個套件的自動編譯失敗,則所有後續套件都會從測試中排除。這是不需要的行為,已修正。現在所有套件都會始終編譯,並且只有失敗的套件會從測試中排除 (並記錄為遺失)。
自身 ID:OTP-7750 輔助 ID:OTP-7803
Common Test 中基於與除錯器互動的步進功能已損壞。此問題已修正,並新增了一些新的步進功能。詳情請參閱 Common Test 使用者指南。
自身 ID:OTP-7800 輔助 ID:seq11106
改進和新功能
現在使用者可以指定 include 目錄,Common Test 在編譯套件和幫助模組時會將其傳遞給編譯器(Common Test 會在執行測試之前自動執行編譯)。
自身 ID:OTP-7803 輔助 ID:OTP-7750
Common_Test 1.3.5
已修正錯誤和故障
如果 Erlang 執行時系統啟動時無法存取 Erlang shell (例如 -noshell),編譯錯誤會導致 Common Test 應用程式崩潰。在無法存取 shell 的情況下,Common Test 無法提示使用者選擇繼續或中止測試會話,但必須假設會話應繼續進行。
自身 ID:OTP-7749 輔助 ID:seq11175, seq11180
改進和新功能
現在 Common Test 使用者可以停用自動編譯功能。這可以透過指定 run_test 標誌 -no_auto_compile,或 ct:run_test/1 選項 {auto_compile,false} 來完成。
自身 ID:OTP-7663
Common Test 新增了一個函式 ct:get_config/3,如果某個特定的配置變數在多個設定檔中定義,則可以使用該函式來傳回該變數的所有匹配值。傳回列表中的元素順序與設定檔的指定順序相同。
自身 ID:OTP-7758 輔助 ID:seq11158
由於 telnet 連線始終由設定變數別名識別,因此無法在設定檔中使用相同的 telnet 主機資料項目開啟多個連線。此限制已解除,現在可以僅透過處理值來關聯連線(即可以使用相同的設定變數開啟多個連線)。詳情請參閱 ct_telnet:open/4。
自身 ID:OTP-7781
引入了一種新的語法來定義預設配置資料值。在舊版本的 Common Test 中,若要定義和存取配置變數的預設值(在套件資訊或測試案例資訊函式中),必須使用別名。使用新的語法,您可以定義預設值而無需參照別名,如下所示:{default_config,VarName,DefaultValue}。請參閱使用者指南以取得更多資訊。
自身 ID:OTP-7782
在舊版本的 Common Test 中,每當配置變數透過 require 語句與名稱關聯時,配置變數名稱都會被新名稱取代。這在測試案例之間引入了不必要的依賴關係(例如,如果一個測試案例引入一個新名稱,則後續的測試案例將無法再透過原始變數存取配置資料)。此功能現已更新,因此當使用 require 引入新名稱時,它們會成為別名(參照)而不是取代。因此,隨時都可以透過原始配置變數名稱存取配置資料元素。
自身 ID:OTP-7783
Common_Test 1.3.4
改進和新功能
Common Test 現在使用 re 應用程式,而不是之前的 rx 驅動程式來執行 telnet 字串上的正規表示式匹配。由於 re 可以在所有支援的作業系統上運作,因此現在也可以在 Windows 等平台上執行 telnet 會話(之前使用 rx 驅動程式時無法這樣做)。請注意,rx 驅動程式從現在起已過時,並將在 OTP R12B 之後從 Common Test 中移除。
自身 ID:OTP-7528
Common_Test 1.3.3
改進和新功能
Common Test 和測試伺服器中實施了各種更新和改進,以及一些小的錯誤修復。
自身 ID:OTP-7112
現在可以透過新函式 ct:abort_current_testcase/1 或 test_server_ctrl:abort_current_testcase/1 來中止目前正在執行的測試案例。
自身 ID:OTP-7518 輔助 ID:OTP-7112
Common_Test 1.3.2
改進和新功能
Common Test 中 rx 程式庫的配置測試並未在一般的 OTP 應用程式配置階段執行。這使得例如 autoconf 無法使用。此問題已變更為符合正常的 OTP 建置程序。
自身 ID:OTP-7379
Common_Test 1.3.1
改進和新功能
與 common_test 一起包含的 rx 程式庫在某些架構上無法建置,因為缺少 -fPIC 編譯器選項。
自身 ID:OTP-7111