使用Windows 7,XAMPP,Mysql,MySQLdb python连接器和python 2.7。
我正在使用unittest模块为我的第一个“真实”应用程序开发测试。在这个测试环境中,我首先截断每个表,并在每次测试后再次截断所有表。问题是测试在尝试截断时保持挂起。它不会返回错误或任何它只是变得无响应的东西(即使使用CTRL-C或CTRL-Z)。这是我首先尝试的解决方案:
def clear():
query = ["truncate cliente", "truncate pagamentos", "truncate vendidos", "truncate produtos"]
for q in query:
cur.execute(q)
con.commit()
我已经将tearDown()调用清除了。然后我尝试了here提出的解决方案,但遇到了同样的问题。
接下来,我尝试了this one,这是代码:
def clear():
query = ["cliente", "pagamentos", "vendidos", "produtos"]
for q in query:
cur.execute("CREATE TABLE "+q+"_new LIKE "+q)
cur.execute("RENAME TABLE "+q+" TO "+q+"_old, "+q+"_new TO "+q)
cur.execute("DROP TABLE "+q+"_old")
cur.commit()
现在,事情变得有些奇怪了。有时候它会像第一个一样挂起,有时它会引发一种挤压,“pagamentos_new”已经存在。当我检查数据库时,pagamentos_old和pagamentos_new都在那里......这让我难过......我不知道现在该做什么。我尝试使用命令行和PyCharm内部运行。我仍然会遇到同样的错误。
我也尝试过使用py.test,但我得到了同样的错误。