偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Openharmony 測試用例指導(dǎo)大全

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

[[441435]]

想了解更多內(nèi)容,請?jiān)L問:

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

https://harmonyos.51cto.com

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

代碼目錄結(jié)構(gòu)

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

partB的目錄結(jié)構(gòu)為//test/example/partB

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

test目錄結(jié)構(gòu)

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

單元測試文件添加

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

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

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

配置文件添加的內(nèi)容如下:

  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

添加的內(nèi)容如下:

  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內(nèi)容如下:

  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內(nèi)容如下:

  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內(nèi)容如下:

  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內(nèi)容如下:

  1. #include <gtest/gtest.h> 
  2. #include <cstdio> 
  3. extern "C" { 
  4. #include "moduleB.h" 
  5.  
  6. using namespace testing::ext; 
  7.  
  8. // 繼承g(shù)oogletext的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:調(diào)用函數(shù)獲取結(jié)果 
  38.     int actual = Sub(4, 1); 
  39.  
  40.     // Step 2:使用斷言比較預(yù)期與實(shí)際結(jié)果 
  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函數(shù)調(diào)用的結(jié)果是不是期望的12 
  51.     EXPECT_EQ(12, Add(5, 7));  

example/partB/module/test/BUILD.gn內(nèi)容如下:

  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內(nèi)容如下:

注意:“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

編譯結(jié)果在:out\ohos-arm-release\sub_example\partB

編譯ModuleBTest命令如下:

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

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

測試運(yùn)行

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

這個可以參考編寫單元測試用例,按照官網(wǎng)文檔運(yùn)行測試用例失敗,如下圖所示:

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

編譯成功

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

修改文件權(quán)限,重新替換文件:

  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í)行權(quán)后:

  1. chmod 0711 /data/test/ModuleBTest 

即可運(yùn)行單元測試用例:

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

如圖所示:61行測試結(jié)果與預(yù)期不符合。

想了解更多內(nèi)容,請?jiān)L問:

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

https://harmonyos.51cto.com

 

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

2023-06-09 15:24:50

UiTest接口鴻蒙

2021-03-04 15:43:29

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

2011-06-08 17:23:12

測試用例

2011-05-16 15:18:18

測試用例

2011-05-16 15:09:20

測試用例

2022-05-10 14:54:13

驗(yàn)收標(biāo)準(zhǔn)測試用例

2011-04-18 10:46:39

接口測試

2011-12-23 17:03:29

性能測試用例設(shè)計(jì)

2011-07-04 18:06:52

測試用例

2022-01-19 17:48:57

測試用例開發(fā)

2011-05-16 14:54:12

測試用例

2020-08-25 08:03:59

測試Sharness結(jié)構(gòu)

2011-09-01 10:05:24

PhoneGap應(yīng)用程序測試

2022-06-13 09:00:00

Selenium測試Web

2024-09-29 15:26:53

MySQLPython

2011-11-02 09:54:37

測試

2011-06-03 16:58:03

測試用例

2021-11-07 14:33:48

算法Pairwise功能

2025-05-27 01:45:00

DeepSeekPython測試

2022-03-14 15:19:36

鴻蒙開發(fā)板操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號