我有一些Python代碼抽象數據庫和它的業務邏輯。此代碼已被單元測試覆蓋,但現在我需要針對不同的DB(MySQL,SQLite等...)測試此代碼。運行不同配置的相同測試
用不同配置傳遞同一組測試的默認模式是什麼?我的目標是確保抽象層如預期的那樣獨立於底層數據庫。如果這可能有幫助,我使用nosetests進行測試,但它似乎缺少Suite Test概念
此致敬意。
我有一些Python代碼抽象數據庫和它的業務邏輯。此代碼已被單元測試覆蓋,但現在我需要針對不同的DB(MySQL,SQLite等...)測試此代碼。運行不同配置的相同測試
用不同配置傳遞同一組測試的默認模式是什麼?我的目標是確保抽象層如預期的那樣獨立於底層數據庫。如果這可能有幫助,我使用nosetests進行測試,但它似乎缺少Suite Test概念
此致敬意。
我喜歡用test fixtures在其中我有幾個類似的測試情況。在Python中,在鼻子下,我通常將其實現爲其他模塊導入的通用測試模塊。舉例來說,我可能會使用以下文件結構:
db_fixtures.py:
import unittest
class BaseDB(unittest.TestCase):
def testFirstOperation(self):
self.db.query("Foo")
def testSecondOperation(self):
self.db.query("Blah")
database_tests.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()
這將運行在BaseDB定義在MySQL和SQlite的所有測試。請注意,我將db_fixtures.py命名爲不會由Nose運行。
如果downvoter有一個建議,我有興趣聽到它 – dbn 2014-08-27 01:08:52
鼻子支持測試套件只是導入和使用unittest.TestSuite。實際上,鼻子會很高興地運行使用標準庫的unittest模塊編寫的任何測試,因此測試者不需要用鼻子樣式書寫鼻子測試跑步者發現的東西。但是,我懷疑你需要比測試套件支持更好的測試你正在談論的那種測試,但是關於你的應用程序的更多細節是真正解決這個問題所必需的。
使用--attrib插件,並在commadn線
1. nosetests -s -a 'sqlite' 2. nosetests -s -a 'mysql'
我認爲這回答* *對面的問題:-)這些命令讓你運行你的測試的一個子集。 OP想要在多個基板上重新運行相同的測試。 – dbn 2013-03-06 01:16:35
如何將應用程序綁定到數據庫?特定數據庫驅動程序如何配置到您的應用程序中? – 2011-02-24 12:02:25
我正在使用SQLAlchemy執行任意SQL語句。我知道,這不是SQLAlchemy的預期用途,但遺留代碼就是它的原型。 Oracle sql和SQLite sql有一些區別,所以我想確定它們的行爲方式都是一樣的。 – tonicebrian 2011-02-24 14:49:18