Skip to content

[讨论] 如何确保单元测试用例名字的唯一性 #10681

@unicornx

Description

@unicornx

现在 unit testcase 的名字的命名规则如下, 参考 https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/utest/utest

Image

但随着目前 testcases 会从 examples/utest/testcases 下移出到各自所属模块的目录下,这个规则需要改变。现提出来欢迎大家讨论。确定下来后我提个 pr 一起改掉。

建议修改为:测试用例名称确保(唯一性)。完整名称由两部分组成:

模块前缀 + 测试功能, 中间以 ”." 连接。

模块前缀使用测试用例相对源码仓库根目录的相对路径,以 “.” 进行连接的命名格式。
测试功能自己定义即可,确保在同一个模块前缀下唯一。

以 dfs 为例,

  • 模块前缀为:"components.dfs"
  • API 测试(components/dfs/utest/tc_dfs_api.c),功能名称为 "fs_dfs_api_tc"

所以 components/dfs/utest/tc_dfs_api.c 中的写法如下:

UTEST_TC_EXPORT(testcase, "components.dfs.fs_dfs_api_tc", utest_tc_init, utest_tc_cleanup, 10);

另外,对于 src 目录下的模块,由于 src 这个目录名字比较含糊,为了和 components 相对,建议用 core 替换,表示 src 下的代码都是内核 core 代码,用来和 components 下的区分

所以 src/klibc/utest/TC_rt_memcmp.c 下的可以改写为:

UTEST_TC_EXPORT(utest_do_tc, "core.klibc.rt_memcmp", RT_NULL, RT_NULL, 1000);

附件是搜索 UTEST_TC_EXPORT 的结果:

UTEST_TC_EXPORT.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions