从nose向单元测试传递设置信息
我正在使用nose来运行我的单元测试。
我有一些.ini文件,比如production.ini、development.ini和local.ini。最后,我还有一个test.ini文件,内容如下:
[app:main]
use = config:local.ini
# Add additional test specific configuration options as necessary.
sqlalchemy.url = sqlite:///%(here)s/tests.db
在我的测试类中,我想像在应用服务器代码中那样设置数据库。大概是这样的:
engine = engine_from_config(settings)
initialize_sql(engine)
dbfixture = SQLAlchemyFixture(
env=model,
engine=engine,
style=NamedDataStyle()
)
nose是怎么把“设置”传递给我的测试代码的呢?
我一直在阅读以下链接以获取一些指导,但我还是没能把所有的内容串联起来。 http://farmdev.com/projects/fixture/using-fixture-with-pylons.html
非常感谢!
1 个回答
7
你需要自己从INI文件中解析设置。以前,Pylons会自动为你处理这件事,只需硬编码加载“test.ini”文件。你有两个选择:1)直接通过 settings = paste.deploy.appconfig('test.ini')
加载INI设置;或者 2)自己加载实际的WSGI应用程序,比如如果你想通过WebTest使用它,可以用 app = pyramid.paster.get_app('test.ini')
,这样会解析INI文件并返回一个实际的WSGI应用。不过,遗憾的是,这种方法不能直接访问INI文件,它会自动将设置传递给你应用的启动函数 main(global_conf, **settings)
。
你可能还会觉得 Pyramid文档 关于功能测试的内容很有用。