成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[441435]]

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

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

https://harmonyos.51cto.com

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

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

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

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

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

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

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

單元測(cè)試文件添加

子系統(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”,為單元測(cè)試添加,把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

測(cè)試運(yùn)行

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

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

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

編譯成功

編譯成功后,可以把編譯好的***Test用hdc_std.exe發(fā)送到Hi3516DV300開發(fā)板中去運(yùn)行,在串口終端上輸出測(cè)試用例的測(cè)試結(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)行單元測(cè)試用例:

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

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

想了解更多內(nèi)容,請(qǐng)?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

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

2011-05-16 15:18:18

測(cè)試用例

2011-06-08 17:23:12

測(cè)試用例

2011-05-16 15:09:20

測(cè)試用例

2022-05-10 14:54:13

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

2011-04-18 10:46:39

接口測(cè)試

2011-07-04 18:06:52

測(cè)試用例

2011-12-23 17:03:29

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

2022-01-19 17:48:57

測(cè)試用例開發(fā)

2011-05-16 14:54:12

測(cè)試用例

2020-08-25 08:03:59

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

2011-09-01 10:05:24

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

2022-06-13 09:00:00

Selenium測(cè)試Web

2022-03-14 15:19:36

鴻蒙開發(fā)板操作系統(tǒng)

2011-06-03 16:58:03

測(cè)試用例

2011-11-02 09:54:37

測(cè)試

2024-09-29 15:26:53

MySQLPython

2021-11-07 14:33:48

算法Pairwise功能

2025-05-27 01:45:00

DeepSeekPython測(cè)試
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 精品二三区 | 日本 欧美 国产 | 日韩国产免费观看 | 午夜黄色影院 | 亚洲美乳中文字幕 | 日韩精品视频一区二区三区 | 国产成人一区二区三区久久久 | 午夜精品视频在线观看 | 日韩欧美在线一区 | 黄色在线免费观看 | 人人九九精 | 欧美日韩三级 | 91私密视频 | 亚洲精品成人在线 | 91精品国产色综合久久不卡蜜臀 | 97精品一区二区 | 97精品国产一区二区三区 | 欧美日韩午夜精品 | 国产精品视频免费观看 | 国产精品成人在线 | 黄色免费网址大全 | 精品国产一区二区三区免费 | 色综合欧美 | 91麻豆产精品久久久久久夏晴子 | 成人在线观看欧美 | 亚洲三级在线观看 | 久久久久久网站 | 免费天天干 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 超碰欧美| 国产欧美日韩综合精品一 | 亚洲欧美视频 | 成人不卡在线 | 夜夜爽99久久国产综合精品女不卡 | 成人免费av在线 | 久久影院一区 | 98久久| 欧洲视频一区二区 | 先锋资源吧 | 91黄色片免费看 | 女同videos另类 |