自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Openharmony 測試用例指導大全

開發(fā) 前端
編寫一個動態(tài)庫libmoduleb_lib.z.so , 然后編寫一個測試可執(zhí)行文件ModuleBTest驗證動態(tài)庫接口的正確性。

[[441435]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

該文檔演示:編寫一個動態(tài)庫libmoduleb_lib.z.so , 然后編寫一個測試可執(zhí)行文件ModuleBTest驗證動態(tài)庫接口的正確性。

代碼目錄結構

partB/module編譯的是動態(tài)庫,在子系統(tǒng)sub_example中。

partB的目錄結構為//test/example/partB

Openharmony  測試用例指導大全-鴻蒙HarmonyOS技術社區(qū)

test目錄結構

Openharmony  測試用例指導大全-鴻蒙HarmonyOS技術社區(qū)

單元測試文件添加

子系統(tǒng)配置添加

子系統(tǒng)配置文件:

code-v3.0-LTS/OpenHarmony/build/subsystem_config.json

配置文件添加的內容如下:

  1. ... 
  2. "sub_example": { 
  3.   "project""hmf/test"
  4.   "path""test/example"
  5.   "name""sub_example"
  6.   "dir""test" 

在Hi3516DV300.json中添加partB的配置

Hi3516DV300.json的位置:

productdefine/common/products/Hi3516DV300.json

添加的內容如下:

  1.   "product_name""Hi3516DV300"
  2.   "product_company""hisilicon"
  3.   "product_device""hi3516dv300"
  4.   "version""2.0"
  5.   "type""standard"
  6.   "product_build_path""device/hisilicon/build"
  7.   "parts":{ 
  8.     ... 
  9.     "sub_example:partB":{} 
  10.   } 

example/partB/module/include/moduleB.h內容如下:

  1. #ifndef MODULE_B_H 
  2. #define MODULE_B_H 
  3.  
  4. int Sub(int a, int b);  
  5. int Add(int a, int b); 
  6. #endif //MODULE_B_H 

example/partB/module/include/moduleB.c內容如下:

  1. #include "moduleB.h" 
  2. #include <stdio.h> 
  3.  
  4. int Sub(int a, int b) 
  5.     return a - b; 
  6.  
  7. int Add(int a, int b) 
  8.     return a + b; 

example/partB/module/BUILD.gn內容如下:

  1. import("//build/ohos.gni"
  2.  
  3. config("moduleb_lib_config") { 
  4.   include_dirs = [ "include" ] 
  5. ohos_shared_library("moduleb_lib") { 
  6.   sources = [ 
  7.     "//test/example/partB/module/include/moduleB.h"
  8.     "//test/example/partB/module/src/moduleB.c" 
  9.   ] 
  10.   public_configs = [ ":moduleb_lib_config" ] 
  11.   part_name = "partB" 
  12.   subsystem_name = "sub_example" 

example/partB/module/test/unittest/module_test/moduleb_test.cpp內容如下:

  1. #include <gtest/gtest.h> 
  2. #include <cstdio> 
  3. extern "C" { 
  4. #include "moduleB.h" 
  5.  
  6. using namespace testing::ext; 
  7.  
  8. // 繼承googletext的Test類 
  9. class ModuleBTest : public testing::Test { 
  10. public
  11.     static void SetUpTestCase(); 
  12.     static void TearDownTestCase(); 
  13.     void SetUp(); 
  14.     void TearDown(); 
  15. }; 
  16.  
  17. void ModuleBTest::SetUpTestCase() {} 
  18.  
  19. void ModuleBTest::TearDownTestCase() {} 
  20.  
  21. void ModuleBTest::SetUp() 
  22.     /** 
  23.      * @tc.setup: reset perfStat 
  24.      */ 
  25.     printf("ModuleBTest::SetUp\n"); 
  26.  
  27. void ModuleBTest::TearDown() { 
  28.     printf("ModuleBTest::TearDown\n"); 
  29.  
  30. /** 
  31.  * @tc.name: ModuleBTest001 
  32.  * @tc.desc: Test bind start time and end 
  33.  * @tc.type: FUNC 
  34.  * @tc.require: AR000CUF6O 
  35.  */ 
  36. HWTEST_F(ModuleBTest, ModuleBTest001, TestSize.Level0) 
  37.     // step 1:調用函數獲取結果 
  38.     int actual = Sub(4, 1); 
  39.  
  40.     // Step 2:使用斷言比較預期與實際結果 
  41.     EXPECT_EQ(4, actual); 
  42.  
  43. /** 
  44.  * @tc.name: ModuleBTest002 
  45.  * @tc.desc: invalid end time test 
  46.  * @tc.type: FUNC 
  47.  * @tc.require: AR000CUF6O 
  48.  */ 
  49. HWTEST_F(ModuleBTest, ModuleBTest002, TestSize.Level0) 
  50.     // 判斷Add函數調用的結果是不是期望的12 
  51.     EXPECT_EQ(12, Add(5, 7));  

example/partB/module/test/BUILD.gn內容如下:

  1. import("//build/ohos.gni"
  2. import("//build/test.gni"
  3.  
  4. module_output_path = "sub_example/partB" 
  5.  
  6. ohos_unittest("ModuleBTest") { 
  7.   module_out_path = module_output_path 
  8.  
  9.   include_dirs = [ 
  10.     "//test/example/partB/module/include" 
  11.    ] 
  12.   cflags = [ 
  13.     "-Wall"
  14.     "-Werror"
  15.   ] 
  16.   sources = [ 
  17.     "unittest/module_test/moduleb_test.cpp" 
  18.   ] 
  19.  
  20.   deps = [ 
  21.     "//third_party/googletest:gtest_main"
  22.   ] 
  23.   external_deps = [ "partB:moduleb_lib", ] 
  24.   part_name = "partB" 
  25.  
  26. group("unittest") { 
  27.   testonly = true 
  28.   deps = [ ":ModuleBTest" ] 

example/ohos.build內容如下:

注意:“test_list”,為單元測試添加,把ModuleBTest添加到編譯系統(tǒng)中去:

  1.     "subsystem""sub_example"
  2.     "parts": { 
  3.         "partB": { 
  4.             "module_list": [ 
  5.                 "//test/example/partB/module:moduleb_lib" 
  6.             ], 
  7.             "inner_kits": [ 
  8.                 { 
  9.                     "type""so"
  10.                     "name""//test/example/partB/module:moduleb_lib"
  11.                     "header": { 
  12.                         "header_files": [ 
  13.                             "moduleB.h" 
  14.                         ], 
  15.                         "header_base""//test/example/partB/module/include" 
  16.                     } 
  17.                 } 
  18.             ], 
  19.             "system_kits": [], 
  20.             "test_list": [ 
  21.                 "//test/example/partB/module/test:unittest" 
  22.             ] 
  23.         } 
  24.     } 

編譯:

重編編譯moduleb_lib命令如下:

./build.sh --product-name Hi3516DV300 --ccache --build-target moduleb_lib

編譯結果在:out\ohos-arm-release\sub_example\partB

編譯ModuleBTest命令如下:

./build.sh --product-name Hi3516DV300 --ccache --build-target ModuleBTest

編譯結果在:out\ohos-arm-release\tests\unittest\sub_example\partB

測試運行

參考文檔:https://gitee.com/openharmony/test_developertest

這個可以參考編寫單元測試用例,按照官網文檔運行測試用例失敗,如下圖所示:

Openharmony  測試用例指導大全-鴻蒙HarmonyOS技術社區(qū)
Openharmony  測試用例指導大全-鴻蒙HarmonyOS技術社區(qū)

編譯成功

編譯成功后,可以把編譯好的***Test用hdc_std.exe發(fā)送到Hi3516DV300開發(fā)板中去運行,在串口終端上輸出測試用例的測試結果。

修改文件權限,重新替換文件:

  1. mount -o remount,rw / 

libmoduleb_lib.z.so 放入開發(fā)板/system/lib/的目錄下:

  1. hdc_std.exe file send Z:\out\ohos-arm-release\sub_example\partB\libmoduleb_lib.z.so /system/lib 

ModuleBTest 放入開發(fā)板/data/test目錄下。 /data/test是本人在開發(fā)板上自建的目錄。

  1. hdc_std.exe file send Z:\out\ohos-arm-release\tests\unittest\sub_example\partB\ModuleBTest /data/test 

修改成可執(zhí)行權后:

  1. chmod 0711 /data/test/ModuleBTest 

即可運行單元測試用例:

  1. /data/test/ModuleBTest 
Openharmony  測試用例指導大全-鴻蒙HarmonyOS技術社區(qū)

如圖所示:61行測試結果與預期不符合。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2023-06-09 15:24:50

UiTest接口鴻蒙

2021-03-04 15:43:29

前端測試工具開發(fā)

2011-05-16 15:18:18

測試用例

2011-06-08 17:23:12

測試用例

2011-05-16 15:09:20

測試用例

2022-05-10 14:54:13

驗收標準測試用例

2011-04-18 10:46:39

接口測試

2011-07-04 18:06:52

測試用例

2011-12-23 17:03:29

性能測試用例設計

2011-05-16 14:54:12

測試用例

2022-01-19 17:48:57

測試用例開發(fā)

2020-08-25 08:03:59

測試Sharness結構

2011-09-01 10:05:24

PhoneGap應用程序測試

2022-06-13 09:00:00

Selenium測試Web

2024-09-29 15:26:53

MySQLPython

2011-06-03 16:58:03

測試用例

2021-11-07 14:33:48

算法Pairwise功能

2011-11-02 09:54:37

測試

2022-01-14 11:51:00

測試工具自動化

2011-06-14 14:04:11

測試用例
點贊
收藏

51CTO技術棧公眾號