如何才能找到你的测试案例呢?文档中说,会加载settings里INSTALLED_APPS的模块,并且在该模块目录的models.py和 tests.py中查找测试案例。因此,我在settings的INSTALLED_APPS里添加了'testdjango',testdjango目录中正好有tests.py。
接下来要运行测试案例,由于安装文档的说明, 运行所有INSTALLED_APPS里的测试案例只要运行:
python manage.py test
如果想指定运行,可以:
python manage.py test testdjango
OK,运行一下,非常不幸,出现了如下异常:
"You haven't set the DATABASE_ENGINE setting yet."
数据库??测试案例为什么还需要设置数据库?回过头仔细看下文档,发现确实有test database一节,大概含义是会生成一个临时的测试数据库,名字是test_前缀,如果想改还可以设定TEST_DATABASE_NAME属性。如果是sqlite,则默认是:memory:方式,即记在内存的方式。为了简单起见,我设置一个sqlite的……
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = ':memory:' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
再次执行,看到输出窗口开始输出了:
Creating test database
突然又是一个异常:
" UnboundLocalError: local variable 'int_alias' referenced before assignment "
这个问题让我google了好一阵,在djangoproject里还专门有一个ticket报了这个问题,但最后确认为不是django的bug不了了之。
http://code.djangoproject.com/ticket/10930