【问题标题】:Understanding a traceback error了解回溯错误
【发布时间】:2017-03-15 15:43:15
【问题描述】:

我正在尝试了解我收到的回溯错误。见下文。

Traceback (most recent call last):
  File "test.py", line 291, in test_cache_in_function
    self.assertTrue("sunset" in testfilestr,"Testing that the sunset request was cached")
AssertionError: Testing that the sunset request was cached

上述错误是否意味着“日落”不应该在缓存文件中?

【问题讨论】:

  • 这意味着testfilestr 中不存在字符串“sunset”,因此assertTrue 失败。
  • 是的。为什么不打印字符串?
  • 看看最初的 try-catch 块。有两个变量名浮动:saved_cacheCACHE_DICTION。我猜只有第二个是正确的。
  • 发布一个重现错误的最小代码示例通常是个好主意。

标签: python assertion traceback


【解决方案1】:

关于命名法的一点。你得到一个AssertionError。错误与回溯一起打印,回溯指示导致该错误的调用顺序。

在您的特定情况下,看起来错误是由于self.assertTrue(...) 的断言出现False 而引起的。您断言字符串 "sunset" 位于 testfilestr 中,但事实并非如此。可能是因为它在缓存文件中。

assertTrue 的第二个参数是一条消息,您将其视为发送给AssertionError 的消息。此参数是可选的,通常用于澄清明显默认消息之外的错误,这将是"sunset" in testfilestr is False, expected True 的效果。

【讨论】:

  • 感谢您的反馈。你的解释很有道理,我编辑了我的主题并添加了我的完整代码,如果你能看一下那就太好了!
  • 这显然不是完整的代码,因为它没有提供有关您如何调用该函数的信息。
  • 现在应该都在那里了!
  • 如果我没有看到引发异常的代码,我无法帮助您修复异常。你用来测试的函数都很好而且很花哨,但我不知道你是如何设置的,你调用它时传入了什么或者返回值发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
相关资源
最近更新 更多