python_discover方法遍历所有执行的用例

当我们写了一个单个py的测试文件时直接运行就ok了,但当我们有很多很多个这样的py

时,难道要一个一个的点击来运行吗,当然不是。我们可以通过discover方法来找到所有的

用例。

下面直接举例说明discover用法:

一、 准备工作

目录结构:

DiscoverCase.py 文件代码:

import unittest
import os

def discover_case(case_dir):
    # 待执行用例的目录
    testcase = unittest.TestSuite()
    discover = unittest.defaultTestLoader.discover(case_dir,pattern="*.py",top_level_dir=None)
    # discover方法筛选出来的用例,循环添加到测试套件中
    print(discover)
    for test_suite in discover:
        for test_case in test_suite:
            print(test_case)
            # 添加用例到testcase
            #testcase.addTests(test_case)
            testcase.addTests(test_case)

    return(testcase)
path = os.path.join(os.getcwd(), "测试用例")
case = discover_case(case_dir=path)
print(case)

 Test1代码(test2~4代码基本相同):

 注意:每个testcase里面的执行用例(即以test开头的函数)必现大于或等于两个,不然会报错。

 二、写好这些后我们就直接跑程序看结果

 运行后用例的文件名、类名、函数名都会遍历出来

 

是不是很简单啊。

 注意:如果用例名称全为中文是不可以加载的到的,必须以字母开始,比如“i登录.py”

 这样是可以被加载到的,如果直接写”登录.py”这样是不能被加载到的。

非常抱歉,我的回答有误。正确答案是sd_ble_gattc_discover_primary_services()函数。该函数可以发现远程设备的所有主服务,包括私有服务。以下是一个使用sd_ble_gattc_discover_primary_services()函数发现远程设备私有服务列表的示例代码: ```c #define BLE_UUID_PRIVATE_SERVICE 0x1234 // 假设私有服务的UUID为0x1234 static uint16_t m_conn_handle = BLE_CONN_HANDLE_INVALID; // 保存连接句柄的全局变量 // 定义事件处理程序 static void on_gattc_evt(ble_gattc_evt_t const * p_evt) { switch (p_evt->evt_id) { case BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP: // 发现主服务的响应事件 { // 遍历服务列表,查私有服务 for (uint32_t i = 0; i < p_evt->params.prim_srvc_disc_rsp.count; i++) { if (p_evt->params.prim_srvc_disc_rsp.services[i].uuid.uuid == BLE_UUID_PRIVATE_SERVICE) { // 到私有服务了,做相应的处理 // ... } } break; } // 其他事件处理 // ... } } // 发现远程设备的主服务列表 void discover_remote_services(uint16_t conn_handle) { ret_code_t err_code; ble_uuid_t srvc_uuid; m_conn_handle = conn_handle; // 保存连接句柄 // 设置要发现的服务UUID srvc_uuid.type = BLE_UUID_TYPE_BLE; srvc_uuid.uuid = BLE_UUID_PRIVATE_SERVICE; // 发现主服务 err_code = sd_ble_gattc_discover_primary_services(m_conn_handle, BLE_GATTc_SVC_TYPE_PRIMARY, &srvc_uuid); if (err_code != NRF_SUCCESS) { // 发现服务失败,做相应的处理 // ... } } ``` 在上述代码中,我们定义了一个私有服务的UUID(假设为0x1234),然后在discover_remote_services()函数中调用了sd_ble_gattc_discover_primary_services()函数发现远程设备的主服务列表。当发现主服务的响应事件BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP被触发时,我们遍历服务列表,查是否有UUID为0x1234的私有服务。如果到私有服务,则做相应的处理。这里的具体处理逻辑可以根据实际需求自行实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值