我有以下目录结构:
web2py/applications/myapp
web2py/applications/myapp/controllers/account.py
web2py/applications/myapp/models/db.py
web2py/applications/myapp/tests/runner.py
web2py/applications/myapp/tests/test_account.py
在account.py
中,有一个访问models/db.py
的函数,例如
def calcExpense():
rows = db(db.expense.id >0).select()
expense = blah and blah..
return expense
在test_account.py
中,我想测试calcExpense
:
class TestAccount(unittest.TestCase):
def testCalcExpense(self):
self.assertTrue()
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAccount))
unittest.TextTestRunner(verbosity=2).run(suite)
如果我使用web2py
在python web2py.py -S myapp -M -R applications/myapp/tests/test_account.py
目录下运行,一切都很顺利,感谢web2py设置了所有必需的环境。
但是我不想为web2py(在web2py
目录下)单向运行unittest,而对于所有其他python项目(在tests
下)则另一种方式。
特别是,我希望通过tests
下的测试运行器运行所有测试:
`python -m unittest -v runner`
如何在runner.py
中设置环境,以便test_account.py
可以导入account.py
,account.py
可以访问db.py
和{中定义的表{1}}?
答案 0 :(得分:1)
您可以使用env
模块中的gluon.shell
功能创建web2py环境。有关如何继续操作的一些建议,请查看web2py.test,尤其是here。
您可能还想查看较旧的项目web2py Test Runner。