max_retry = 3 # 最大重试次数 retry_count = 0 #当前重试次数 test_result = False #测试结果,默认为失败 while retry_count < max_retry and not test_result: try: #传输data-passwd数据,执行DeviceManagement-Connect方法 self.cns.Connect(**data) assert self.cns.dlg['Connected'].exists() logger.info("设备管理:正确密码连接---测试PASS---") test_result = True except Exception as e: retry_count += 1 logger.info(f"第{retry_count}次重试") # logger.error(str(e)) if test_result is not True: logger.info("FAIL") logger.info("设备管理:正确密码连接---测试FAIL---") self.assertEqual(True, False) else: pass 明明断言为真,为什么还是判断错误
时间: 2024-02-10 07:22:12 浏览: 26
根据你提供的代码,如果断言失败,会输出日志信息并且将测试结果设置为失败(test_result = False),因此最终会执行判断 test_result is not True 的分支,输出 "FAIL" 和 "设备管理:正确密码连接---测试FAIL---"。所以,如果你想要测试通过,需要确保断言条件是正确的。可能需要检查断言中的条件是否正确或者尝试输出一些调试信息来排除问题的原因。
相关问题
具体解释mysql: host: bj-cynosdbmysql-grp-ol0z32uy.sql.tencentcdb.com port: 21113 user: pc password: "Zxc753951." database: jobs_pc # 爬虫获取失败重试 retry_timeout: 120000 # 超时重试时间,单位为毫秒 max_retry_attempts: 3 # 最大重试次数 # 调试模式 Debug_mod: true # 代理 proxy_server: server: "http://127.0.0.1:12387" username: "" password: ""
这段代码是用于连接到 MySQL 数据库的配置信息,包括主机名(host)、端口号(port)、用户名(user)、密码(password)和数据库名(database)。这些信息用于在程序中建立与数据库的连接。
此外,代码还包括了一些其他的配置信息,如失败重试的最大次数(max_retry_attempts)和超时重试时间(retry_timeout)。当爬虫获取数据失败时,程序会重新尝试连接数据库,最多重试 max_retry_attempts 次,每次重试的时间间隔为 retry_timeout 毫秒。
另外,代码还包括了调试模式(Debug_mod),它的值为 true 时表示程序会输出一些调试信息。最后,代码还包括了代理服务器的配置信息,用于在爬取数据时使用代理。
@retry(stop_max_attempt_number=5)
`@retry(stop_max_attempt_number=5)` 是 Python 装饰器语法,用于修饰函数,表示该函数需要进行自动重试。其中 `stop_max_attempt_number=5` 表示最大重试次数为 5 次。
具体来说,当修饰过的函数运行时抛出异常时,装饰器会自动重试该函数,直到函数成功执行或达到最大重试次数为止。在每次重试之间,装饰器会等待一段时间,然后再次尝试执行函数。
需要注意的是,`@retry` 装饰器需要依赖 `retrying` 库,因此在使用前需要先安装该库。可以通过以下命令在终端中安装:
```
pip install retrying
```