【问题标题】:Django unit test taking a long time to runDjango 单元测试需要很长时间才能运行
【发布时间】:2023-04-05 19:23:01
【问题描述】:

我尝试了不同的方法,例如python manage.py test --keepdb,并创建了一个单独的测试数据库。 我收到一个错误 -:

Using existing test database for alias 'default'...
Got an error creating the test database: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE DATABASE IF NOT EXISTS `test_b2b` ;\n                    SET sql_notes = @' at line 2")

我使用 MySQL 作为数据库。 Django 版本 - 2.1.7 PyMySQL==1.0.2

【问题讨论】:

  • 看起来test_b2b 有一个开始引号,但没有和结束引号。
  • 这不是问题。它在复制粘贴问题时发生了错误。当我给出没有标志 --keepdb 的命令“python manage.py test api”(api 是应用程序的名称)时,它正在工作。但它需要很长时间,比如 4 分钟。
  • 这看起来像 a really old django version 不久前删除了它的代码。假设这仍然是我检查并执行 sql_notes 的语法。 cursor.execute per this answer 意味着只采用一条 sql 语句。将 django 和 mysql 版本放在问题中会很好。
  • Django 2.1。我已经编辑了这个问题。请看一看。
  • 我已经回答了这个问题。如果不可接受,请接受答案或评论。注意下一个问题,MySQL版本是SELECT VERSION()返回的MySQL服务器的版本。

标签: mysql django


【解决方案1】:

2.1 是一个不受支持的版本,存在错误。

在 2.2a1 中是 fixed

如果您要继续使用此版本,请编辑代码以删除错误所在的两个 SET .. sql_notes 行,这样剩下的就是:

cursor.execute('''
CREATE DATABASE IF NOT EXISTS %(dbname)s %(suffix)s
''' % parameters)

【讨论】:

    猜你喜欢
    • 2016-07-29
    • 2018-10-16
    • 2021-06-15
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多