我正在使用鼻子进行单元测试。
我有.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
在我的测试类中,我想像在app服务器代码中那样设置数据库。类似的东西:
engine = engine_from_config(settings)
initialize_sql(engine)
dbfixture = SQLAlchemyFixture(
env=model,
engine=engine,
style=NamedDataStyle()
)
鼻子如何将'设置'传递给我的测试代码?
我一直在阅读以下链接以获取一些指导,但我无法连接所有的点。 http://farmdev.com/projects/fixture/using-fixture-with-pylons.html
非常感谢!
答案 0 :(得分: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 docs功能测试很有用。