管理集成测试的测试实例
项目描述
testinstances是一组管理实例包装器,旨在简化与redis和mongodb的集成测试。如果您已在路径中安装了二进制文件,它可以为您创建和销毁沙盒实例,以便进行测试。
示例
API简单明了,易于嵌入到设置/清理函数中。它还自动返回实例连接。
import unittest
from testinstances import RedisInstance
class TestSomeJunk(unittest.TestCase):
def setUp(self):
# Set up an instance on port 12345
self.redis = RedisInstance(12345)
def tearDown(self):
self.redis.terminate()
def test_stuff(self):
self.redis.conn.set('foo', 'bar')
self.assertEqual(self.redis.conn.get('foo'), 'bar')
或者,如果您想更高级一些,避免每个测试案例的进程创建/终止成本
import unittest
from testinstances import MongoInstance
class TestSomeJunk(unittest.TestCase):
@classmethod
def setUpClass(cls):
# Set up an instance on port 12345
cls.mongo = MongoInstance(12345)
@classmethod
def tearDownClass(cls):
cls.mongo.terminate()
def setUp(self):
# All instance types implement ``flush``
self.mongo.flush()
def test_stuff(self):
collection = self.mongo.conn['someDB']['someCollection']
collection.insert({'foo': 'bar'})
self.assertEqual(collection.find({'foo': 'bar'}).next()['foo'], 'bar')
开发
要运行测试,您需要安装所有测试运行的数据库
对于Debian/Ubuntu
$ sudo apt-get install redis-server mongodb-server
对于OSX
$ sudo brew install redis mongodb
然后只需运行 tox。
路线图
新实例类型
Kafka
Zookeeper
文档和ReadTheDocs
Travis-CI