插件窝 干货文章 pytest测试结果解读:E、s、.分别代表什么含义?

pytest测试结果解读:E、s、.分别代表什么含义?

试用 测试 表示 失败 318    来源:    2025-03-11

在使用 pytest 进行测试时,测试结果的输出中会包含一些符号来表示每个测试用例的执行状态。以下是常见的符号及其含义:

  1. . (点)

    • 表示一个测试用例成功通过。每个通过的测试用例都会在输出中显示为一个点。
  2. E

    • 表示测试用例执行过程中发生了异常(即测试失败)。通常,E 后面会跟随详细的错误信息,帮助你定位问题。
  3. s

    • 表示测试用例被跳过(skipped)。这可能是因为测试用例被标记为 @pytest.mark.skip 或者满足某些跳过的条件(例如,某些依赖项不可用)。
  4. F

    • 表示测试用例失败(failed)。与 E 不同,F 通常表示测试断言失败,而不是测试代码本身抛出异常。
  5. x

    • 表示测试用例预期失败(expected to fail)。这通常是因为测试用例被标记为 @pytest.mark.xfail,表示你预期这个测试会失败,并且如果它真的失败了,pytest 会将其标记为 x
  6. X

    • 表示测试用例预期失败但实际通过了。这通常是因为测试用例被标记为 @pytest.mark.xfail,但你预期它会失败,结果它却通过了。
  7. !

    • 表示测试用例引发了警告(warning)。这可能是因为测试代码中使用了某些不推荐的功能或配置。

示例输出

假设你有以下测试输出:

....E.sF
  • 前四个点表示四个测试用例成功通过。
  • E 表示第五个测试用例执行时发生了异常。
  • s 表示第六个测试用例被跳过。
  • F 表示第七个测试用例断言失败。

总结

  • .:测试通过
  • E:测试执行时发生异常
  • s:测试被跳过
  • F:测试断言失败
  • x:测试预期失败且确实失败
  • X:测试预期失败但实际通过
  • !:测试引发了警告

通过这些符号,你可以快速了解测试的整体执行情况,并定位问题所在。