我之前也问过这个,但对答案不满意。
我用的是什么:
工作:
问题:
一些常见的错误:
到目前为止的故障排除:
我看到的唯一问题是,无论何时将代码推送到开发人员和生产brnach,随机测试失败都会启动。有些测试会反复失败。
有谁能告诉我我还能做些什么来解决这个问题。我试着谷歌搜索问题,但徒劳无功。我知道xunitpatterns网站对不稳定的测试行为有一些很好的见解,但它没有帮助,因为我尝试了大部分的东西。
答案 0 :(得分:1)
这是一个非常难以回答的问题。
django开发人员可能会遇到一些常见的陷阱,但我不知道。
除此之外,这只是正常的调试:
找到重现失败的方法。如果您可以在自己的笔记本电脑上进行测试失败,那就太好了。如果不能,则必须在失败的机器上进行调试。
获取更多信息。断言可以在失败时打印自定义消息。打印相关变量的值。将调试打印输出添加到代码和测试中。看看事情不是他们应该的样子。谷歌如何使用Python调试器。
保持开放的心态。错误可以在任何地方:硬件,软件环境,代码或测试代码。但除非你是上帝,Linus Torvalds或Brian Kernighan这是一个安全的第一个假设,这个bug起源于你的键盘和座位后面。 (以上所有三个黑客也犯了错误。)
答案 1 :(得分:-1)
问题 - AssertionError:datetime.datetime(2012,12,5,0,0,27,2188397)!= datetime.datetime(2012,12,5,0,0,27,239884)
我使用了冻结库来使日期时间更具可预测性。 我不确定为什么会出现这个问题,但冻结日期和时间会有所帮助。
示例:
from freezegun import freeze_time
import datetime
import unittest
@freeze_time("2012-01-14")
def test():
assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)