python assert判断完,只统计成功或者失败,程序不终止
时间: 2025-01-04 22:41:14 浏览: 8
Python 中的 `assert` 语句用于检查某个条件是否为真,如果条件为假,则会抛出一个 AssertionError 异常。默认情况下,当这个异常发生时,程序会停止执行并显示错误信息。但是,如果你想在测试完成后仅统计成功或失败的数量而不停止程序,你可以采取一些技巧:
1. **使用 try-except 结构**:将 `assert` 放在一个 `try` 块中,并在 `except` 块捕获 `AssertionError`。这样,即使 `assert` 失败,程序也不会立即终止。
```python
success_count = 0
failure_count = 0
for test_case in cases_to_test:
try:
assert condition, f"Test case {test_case} failed"
success_count += 1
except AssertionError as e:
failure_count += 1
print(f"{test_case}: {str(e)}")
print(f"Success count: {success_count}, Failure count: {failure_count}")
```
2. **自定义异常处理**:创建一个简单的函数封装 `assert`,返回一个布尔值表示测试结果。这样可以避免直接抛出异常。
```python
def test_condition(condition, message):
if not condition:
return False, message
else:
return True, "Pass"
result, msg = test_condition(some_condition, "Custom error message")
if result:
print("Pass")
else:
print(f"Fail: {msg}")
# 统计结果
```
阅读全文