我有一个使用paster create -t pylons
一个控制器和匹配的功能测试创建的股票 Pylons 应用程序,使用添加paster controller
,以及一个 SQLAlchemy 表和映射的 ORM 类。SQLAlchemy 的东西是在init_model()
函数中定义的,而不是在模块范围内(并且需要在那里)。
运行python setup.py test
引发异常,因为在同一进程nose
中以某种方式导致init_model()
被调用两次,因此它试图创建一个已经存在的模型。
我可以通过在内部设置和检查全局变量来巧妙地解决这个问题init_model()
,但是(a)我不希望这样做,并且(b)动态定义模型的第三方库(例如 AuthKit)也会破坏测试,并且不能这么容易改变。
有没有办法修复nose
Pylons 的测试,或者我应该编写自己的测试脚本并直接使用unittest
,loadapp
和webtest
?这有什么可行的例子吗?