【开发测试】ut和it查看测试报告和测试log问题

1. 单元测试ut_output.txt不会有额外打印的吗

在storage组件lualib/nvme/nvme_object.lua新增打印

-- 更新NVMe盘smartlog信息
function c_nvme:get_nvme_smart_info()
    log:error('log test get_nvme_smart_info')
    local obj = self.nvme_mi_mctp_obj
    if not obj or not obj.nvme_mi_obj then
        return
    end
    obj:update_smart_log()
    return obj.smart_log
end

确定unit/test_nvme.lua有测试以上函数

function test_get_nvme_smart_info()
    local result = nvme_obj:get_nvme_smart_info()
    lu.assertEquals(result, nil)
end

运行如下命令

bmcgo test -jit -ut -wb

输出如下:

===>>>包名: storage/1.81.3@openubmc.dev/dev
仓库地址为: https://192.168.41.251/10022/openUBMC/storage.git
================================ 构建菜单 ================================
单元测试(ut):                      True
集成测试(it):                      False
自动测试(rt):                      False
覆盖率:                           False
地址消毒:                          False
============================================================================
保存包信息到 /root/vpx_project/storage/temp/package_info
================ 开发者测试开始 ================
================ 测试 storage 开始 ================
1..182
# Started on Tue Apr 28 15:45:11 2026
# Starting class: TESTNvmeMiAdminProcess
ok     1        TESTNvmeMiAdminProcess.test_check_specified_opcode_support_uuid
ok     2        TESTNvmeMiAdminProcess.test_check_support_hw_defined_without_uuid
ok     3        TESTNvmeMiAdminProcess.test_check_support_uuid_by_identify_ctrl
ok     4        TESTNvmeMiAdminProcess.test_get_specified_uuid_index
ok     5        TESTNvmeMiAdminProcess.test_update_admin_command
ok     6        TESTNvmeMiAdminProcess.test_update_mi_command
# Starting class: TESTNvmeObject
Dt 报告结果输出到 /root/vpx_project/storage/temp/coverage/dt_result.json
================================ 构建菜单 ================================
单元测试(ut):                      True
集成测试(it):                      False
自动测试(rt):                      False
覆盖率:                           False
地址消毒:                          False
============================================================================
===>>>> 测试: storage/1.81.3@openubmc.dev/dev 完成

期望ut_output.txt有新增的打印,但并没有输出相关打印

2. 集成测试test命令执行完毕,测试报告却没有数据?

运行如下命令:

bmcgo test -jit -it -wb

最后的输出如下:

2026-04-28 16:18:29.046651 unknown_service NOTICE: test_storage.lua(193): ================ test storage complete ================
2026-04-28 16:18:29.205216 storage ERROR: bus_monitor_service.lua(98): get fructrl object failed
Dt 报告结果输出到 /root/vpx_project/storage/temp/coverage/dt_result.json
================================ 构建菜单 ================================
单元测试(ut):                      False
集成测试(it):                      True
自动测试(rt):                      False
覆盖率:                           False
地址消毒:                          False
============================================================================
===>>>> 测试: storage/1.81.3@openubmc.dev/dev 完成

但dt_result.json 数据为0,应该是it测试没有完成,卡在哪里了?

完整的it_output.txt 和 dt_result.json

it_output.txt (28.8 KB)

dt_result_json.txt (618 字节)

3. 集成测试中,如果有发送ipmi命令,相应的handler是运行?

相关结果存放在组件代码目录temp/coverage/output下

看起来it测试没有顺利走完,测试报告tests failures successes都是0。从it_output.txt来看,fructrl服务在添加对象时报告 Objects [RecordFault] … distribute failed,storage服务多次报错 get fructrl object failed,并且出现KILL self,请问可能是什么原因导致it测试没有按期望执行并且输出相关结果?

这种一般都是组件功能出错了,比如真的出现了fructrl组件功能性问题,需要进一步定位