最近、Cassandra をプライマリ データ ストアとして使い始めました。CCMを使用して単体テストを作成しようとしています。
Cassandra Cluster インスタンスをスピンアップして、1 つのテスト クラスをテストできます。これと並行して、別のテスト クラスをテストできるようにしたいと考えています。シリアル ユニット テストには非常に長い時間がかかり、さらに多くのテスト ケースが追加される可能性があります。私のテストコードは次のようになります-
class BaseTestCase(TestCase):
def setUp(self):
super(BaseTestCase, self).setUp()
# Create and start a CCM (Cassandra Cluster Management) cluster
self.cluster = ccmlib.cluster.Cluster() # with reqd params
self.cluster.populate(1).start() # Start cluster with 1 node
この基本クラスから継承する複数のテスト クラスがあり、テストを連続して実行すると、正常に動作します。しかし、nosetests を並行して実行すると、「Cassandra インスタンスが既に実行されている可能性があります」という行に沿ってエラーが発生します。Dtestsを調べてみましたが、これで問題が解決しないようです。クラスター全体でテストを実行できるようですが、並行して実行することはできません。
この目的のために誰かが私に指摘できるものがあるかどうか、またはCCMまたはDtestsの使用法で私が何か間違ったことをしていると誰かが考えているかどうか疑問に思っていました. ありがとう!