激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - 編程技術(shù) - Openharmony 測試用例指導(dǎo)大全

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

2021-12-22 22:17鴻蒙社區(qū)拓維信息_liu 編程技術(shù)

本文為您介紹Openharmony 測試用例指導(dǎo)大全,編寫一個動態(tài)庫libmoduleb_lib.z.so , 然后編寫一個測試可執(zhí)行文件ModuleBTest驗證動態(tài)庫接口的正確性。

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

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

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

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

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

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

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

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

單元測試文件添加

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

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

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

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

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

在Hi3516DV300.json中添加partB的配置

Hi3516DV300.json的位置:

productdefine/common/products/Hi3516DV300.json

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

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

example/partB/module/include/moduleB.h內(nèi)容如下:

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

example/partB/module/include/moduleB.c內(nèi)容如下:

  1. #include "moduleB.h"
  2. #include
  3. int Sub(int a, int b)
  4. {
  5. return a - b;
  6. }
  7. int Add(int a, int b)
  8. {
  9. return a + b;
  10. }

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

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

example/partB/module/test/unittest/module_test/moduleb_test.cpp內(nèi)容如下:

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

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

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

example/ohos.build內(nèi)容如下:

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

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

編譯:

重編編譯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

測試運行

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

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

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

編譯成功

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

即可運行單元測試用例:

  1. /data/test/ModuleBTest
Openharmony 測試用例指導(dǎo)大全

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

原文鏈接:https://harmonyos.51cto.com

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩在线播放一区 | 永久免费黄色大片 | 国产精品一区免费在线观看 | 亚洲国产精品久久久久 | 天堂在线资源库 | 成片免费观看视频大全 | 国产成人自拍小视频 | 高清一区二区在线观看 | 成人免费看片a | 欧美黄色试片 | 国产精品刺激对白麻豆99 | 国产日韩一区二区三区在线观看 | 特级黄色一级毛片 | 九草网| 成片免费观看大全 | 欧美国产日韩在线观看成人 | 永久av在线免费观看 | 成人毛片视频免费看 | 国产黄色录像片 | 久久精品中文字幕 | 草久视频在线观看 | 国产电影av在线 | 亚洲精品 欧美 | 一级免费a | 少妇的肉体的满足毛片 | 午夜精品成人一区二区 | 成人在线视频精品 | 国产在线精品一区二区三区不卡 | 久久艹逼| 欧美a级毛片| 在线男人天堂 | www国产成人免费观看视频 | 国产精品一区免费在线观看 | 欧美亚洲免费 | 欧美日本免费一区二区三区 | 免费一级在线视频 | 激情国产视频 | 国产大片全部免费看 | 一级黄色免费观看 | 红杏网站永久免费视频入口 | 国产69精品久久99不卡免费版 |