我有一些 Python 代码抽象了数据库及其上的业务逻辑。此代码已包含在单元测试中,但现在我需要针对不同的数据库(MySQL、SQLite 等...)测试此代码
通过不同配置的同一组测试的默认模式是什么?我的目标是确保该抽象层独立于底层数据库按预期工作。如果这有帮助,我正在使用 nosetests 来运行测试,但它似乎缺少套件测试概念
最好的问候。
最佳答案
我喜欢使用 test fixtures 对于我有几个类似测试的情况。在 Python 中,在 Nose 下,我通常将其实现为其他模块导入的公共(public)测试模块。例如,我可能会使用以下文件结构:
db_fixtures.py:
import unittest
class BaseDB(unittest.TestCase):
def testFirstOperation(self):
self.db.query("Foo")
def testSecondOperation(self):
self.db.query("Blah")
数据库测试.py:
import db_fixtures
class SQliteTest(db_fixtures.BaseDB):
def setUp(self):
self.db = createSqliteconnection()
class MySQLTest(db_fixtures.BaseDB):
def setUp(self):
self.db = createMySQLconnection()
这将在 MySQL 和 SQlite 上运行 BaseDB 中定义的所有测试。请注意,我以 Nose 不会运行的方式命名 db_fixtures.py。
关于python - 使用不同的配置运行相同的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5104276/