原創|使用教程|編輯:龔雪|2015-12-10 14:17:56.000|閱讀 1057 次
概述:關于Parasoft C / C ++test的嵌入式單元測試實踐,本文主要介紹了單元測試的腳本配置,堆和棧設置。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
uVision4和ULINKPro的內置測試流程定義對執行流程變量的作用:
名稱 | 默認值 | 描述 |
uVision項目 可執行文件的位置 | ${uvision:project_executable} | 自動擴展到uVision項目構建的產品文職(一般可執行文件)。這個變量是用于替換C++test生成的原始測試可執行文件。 |
uVision項目的項目文件 | ${uvision:project_file} | 自動擴展uVision項目文件的位置。這個變量是用于啟動uVision和所生成的調試腳本來執行自動測試。在典型情景中, 不應該修改該變量。 |
uVision IDE可執行文件 | Uv4.exe | uVision IDE可執行文件的位置。它是執行自動化測試所必須的。如果C++test沒有自動檢測,需要用戶手動指定。 |
uVision項目目錄 | ${uvision:project_ directory} | 自動擴展到uVision項目目錄的位置。這是C++test生成的調試腳本的默認存儲位置。 |
uVision項目目標 | ${uvision:project_ target} | 自動擴展到uVision項目的當前目標。如果為了測試在uVision中創建了一個特殊的目標,需要手動將其指定為屬性值。 |
可執行出口點 | _sys_exit | 這個功能名稱或地址被看做是測試執行的端點。C++test的默認配置是從_sys_exit可執行文件中調用的最后一個功能。當運行的測試程序將達到_sys_exit功能時,C++test生成的調試腳本將結束執行的測試。 |
調試腳本模板 | ${cpptest:cfg_dir}/ templates/for_recipes/uvision _ulinkPro_itm.tja | 調試腳本模板的位置。C++test用其生成調試腳本的最終形式(用于uVision執行自動化測試)。它是可以自定義和修改的。它只包含必須部署和運行測試可執行文件的命令。用于源程序的任何開發環境的特殊初始化,都應該添加到這個模板,在最終調試腳本中打印出來。建議將調試模板文件備份(存儲在C++test distribution里),默認由該屬性標記并放入項目地址中,便于修改。這個調試腳本模板需要修改執行流程屬性:${project_loc}/ uvision_ulinkPro_itm.tja |
上文提到,當準備或運行可執行文件時,不標準的項目需要一些額外的工作。這可以通過編輯測試流程定義(test flow definition)來實現。點擊“Edit...”,然后再點擊“Test execution flow:”下拉菜單。有關編輯“test flow definition”詳情,請參考C++test用戶指南。
除了完成C++test中的配置之外,我們還需要一些工作。通常情況下,我們需要做以下工作:
C++test使用以下命令行來運行uVision IDE,來自動執行測試可執行文件:
uv4.exe -d <tested project uVision project file> -t <name of the uVision project target>
“-d”選項可以使uVision在調試模式下運行,并執行調試腳本(為目標<name of the uVision project target> 準備)指定的所有命令。為了確保C++test生成的腳本可以使用,需要項目屬性中設置腳本路徑,如下圖:
這種情況下,C++test生成的調試腳本會在uVision項目位置(默認是C++test生成地址)。
為了方便起見,建議添加附加的uVision項目目標,并將調試腳本的路徑只設為該目標。使用同一個項目目標進行測試和開發需要你兼顧開發和測試調試腳本。需要注意的是,如果目標只針對測試,需要在C++test測試配置的測試流程屬性(test flow propertie)中指定名稱。具體方法在前文中有介紹。
單元測試框架會消耗額外的內存,這影響了棧和堆的使用情況。當被測項目設置了免費的堆或堆棧存儲器,測試執行可能會由于堆棧/堆不足而導致崩潰。測試框架使用的棧和堆內存的數量取決于很多因素。例如,“工具配置(instrumentation configuration)”、“C++test運行庫配置(C++test runtime library configuration)”和“測試案例/存根的代碼(code of the test cases and stubs)”。C++test配置中有一些節點可以限制堆棧/堆的消耗。對于簡單的項目來說(例如ASR演示程序),我們設置堆棧為0x450,堆為0x900就足夠了。
堆和棧內存通常是通過匯編程序啟動文件(assembler startup file)進行配置。本例中,為STM32F10x.s。若要修改這些值,,從項目樹(project tree)中選擇“assembler startup file”,切換到 編輯器窗口,然后選擇“配置向導(Configuration Wizard)”選項卡。在配置向導選項卡中,輸入棧和堆的值。下圖是一個典型的設置:
為確保項目修改后重建,要使匯編程序啟動文件生成的對象是最新的。這點很重要,因為C++test要用它構建最終測試可執行文件(C/ C ++源代碼生成的對象是由C++test產生的,但匯編文件生成的所有項目是來自源項目)。
購買最新正版授權Parasoft贈送Macbook!""
慧都年終盛典火爆開啟,一年僅一次的最強促銷,破冰鉅惠不容錯過(12.01~12.31)?。?/strong>優惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn