本頁提供 Fuchsia 使用相關詳細資料和範例
偵錯工具 (zxdb
),搭配 fx test
指令。
此外,您也可以參閱「教學課程:使用 zxdb 偵錯測試」 ,進一步瞭解如何將 zxdb 用於測試。
從 fx 測試啟動 zxdb 工作階段
fx test
指令支援 --break-on-failure
和 --breakpoint
標記,可讓您使用 zxdb
對測試進行偵錯。如果測試使用
相容的測試執行元件 (即 gTest、gUnit 或 Rust),將
--break-on-failure
旗標會導致測試失敗暫停執行測試
然後輸入 zxdb
偵錯環境,例如:
fx test --break-on-failure rust_crasher_test.cm
這個指令會輸出如下的輸出內容:
<...fx test startup...>
Running 1 tests
Starting: fuchsia-pkg://fuchsia.com/crasher_test#meta/rust_crasher_test.cm
Command: fx ffx test run --max-severity-logs WARN --break-on-failure fuchsia-pkg://fuchsia.com/crasher_test?hash=1cceb326c127e245f0052367142aee001f82a73c6f33091fe7999d43a94b1b34#meta/rust_crasher_test.cm
Status: [duration: 13.3s] [tasks: 3 running, 15/18 complete]
Running 1 tests [ ] 0.0%
👋 zxdb is loading symbols to debug test failure in rust_crasher_test.cm, please wait.
⚠️ test failure in rust_crasher_test.cm, type `frame` or `help` to get started.
84 #[test]
85 fn test_should_fail() {
▶ 86 assert_eq!(0, 1);
87 }
88 }
🛑 process 1 rust_crasher_bin_test::tests::test_should_fail() • main.rs:86
[zxdb]
由於您啟動了 zxdb 工作階段,現在可以使用
zxdb
個工作流程。但在本範例中,執行緒已屬於嚴重錯誤
例外狀況,step
、next
和 until
等一般執行指令
無法使用。檢查指令,例如 print
、frame
和 backtrace
都可供使用。
同時執行測試案例
zxdb
專門用來處理多程序偵錯。如要查看
目前附加的處理程序及相關執行狀態,含有 process
名詞
或是使用 status
指令目前「有效」程序會標上
「▶」] 號。
詳情請參閱互動模式 (或
使用 help
指令)。
視您提供給 fx test
或測試執行元件的選項而定
多個測試案例可能會同時失敗。有權限
測試執行器都會為每個測試案例產生個別程序,而且
可允許多個測試程序
讓應用程式從可以最快做出回應的位置
回應使用者要求
使用 fx test
執行時,zxdb
會附加到您值區內的所有程序
測試領域測試案例失敗「只會」停止該程序。
只有在測試案例數量時,才會停止平行執行作業
失敗情形等於系統允許的平行測試案例數量。在任何情況下
程序會從 zxdb
卸離,系統會立即啟動另一個測試案例程序。
關閉偵錯工具
檢查測試失敗後,您可以透過下列方式繼續執行測試:
從測試程序卸離,例如使用 kill
、detach
或
continue
。
如先前所述
同時執行測試案例,多個
測試案例可能會同時失敗如未明確將
附加的程序,zxdb
仍在前景中。您可以查看所有附加的
處理使用 process
名詞的程序
您也可以使用特定指令,從所有處理程序卸離,例如:
quit
、detach *
和 ctrl+d
),並繼續執行測試套件
立即生效