ton*_*ian 5 python database unit-testing nosetests
我有一些抽象数据库及其业务逻辑的 Python 代码。单元测试已经涵盖了这段代码,但现在我需要针对不同的数据库(MySQL、SQLite 等)测试这段代码。
使用不同配置通过同一组测试的默认模式是什么?我的目标是确保抽象层独立于底层数据库按预期工作。如果这有帮助,我正在使用鼻子测试来运行测试,但它似乎缺乏套件测试概念
此致。
我喜欢在有多个类似测试的情况下使用测试装置。在Python中,在Nose下,我通常将其实现为由其他模块导入的公共测试模块。例如,我可能使用以下文件结构:
db_fixtures.py:
import unittest
class BaseDB(unittest.TestCase):
def testFirstOperation(self):
self.db.query("Foo")
def testSecondOperation(self):
self.db.query("Blah")
Run Code Online (Sandbox Code Playgroud)
数据库_测试.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()
Run Code Online (Sandbox Code Playgroud)
这将在 MySQL 和 SQlite 上运行 BaseDB 中定义的所有测试。请注意,我将 db_fixtures.py 命名为 Nose 不会运行它。