【发布时间】:2015-07-27 12:04:06
【问题描述】:
似乎django在测试期间使用的数据库没有与其他线程共享
例如:
在 TestCase 类中:
def my_test(self):
print(MyModel.objects.all())
my_function()
在我的课堂上:
def worker():
print(MyModel.objects.all())
def my_function():
thread = Thread(target=worker)
thread.start()
控制台结果:
[<MyModel object>, <MyModel object>, <MyModel object> ... ]
[]
所以我们得到了第一个调用,但是一旦我们进入另一个线程,它就不再使用测试数据库了。
我看了:Django: using same test database in a separate thread 并尝试为“NAME”和“TEST_NAME”使用相同的数据库,但它对我不起作用
即使我的线程正在访问 db,我可以做些什么来测试它们?
【问题讨论】:
标签: python django multithreading unit-testing