At SMX we use https://github.com/SMX-LTD/ccm-clj for our Cassandra integration tests. ccm-clj is a Clojure wrapper around CCM.
-- Daniel > On 14/10/2014, at 6:54 pm, Ranjib Dey <dey.ran...@gmail.com> wrote: > > you can use tools like chef along side vagrant to bring a cassandra. I > personally prefer LXC containers, as they mimic full blown vms, along side > chef-lxc which provides chef's awesome DSL for container customization > (similar dockerfile, and you wont install chef inside the container), for our > scenarios, i use 5 node clusters. and those whole spawn+ token set + > rebalance is done as part of the test setup, > > this is assuming you want to run full blown integration test within a single > host. if you can afford multiple hosts, you can set up either ephemeral hosts > (chef-metal) or dedicated hosts (normal chef nodes but with a CI agent , like > team city or go-cd etc). > > So, depending upon how big you want integration environment (from a single > host developer environment) till a production clone (say for capacity > planning & load testing), you can automate cassandra cluster provisioning > before you actually kick in your tests, which might be jmeter/gatling based > testing to actual unit/functional/UAT style testing. I use chef, but im sure > alternate exists in other frameworks > hope this help > ranjib > >> On Mon, Oct 13, 2014 at 10:36 PM, Paco Trujillo <f.truji...@genetwister.nl> >> wrote: >> Hi Kevin >> >> >> >> We are using a similar solution than horschi. In the past we use >> CassandraUnit (https://github.com/jsevellec/cassandra-unit) but truncate the >> tables after and before each test works better for us. We also set >> gc_grace_seconds to zero. >> >> >> >> >> >> >> From: horschi [mailto:hors...@gmail.com] >> Sent: maandag 13 oktober 2014 22:17 >> To: user@cassandra.apache.org >> Subject: Re: How do you run integration tests for your cassandra code? >> >> >> >> Hi Kevin, >> >> I run my tests against my locally running Cassandra instance. I am not using >> any framework, but simply truncate all my tables after/before each test. >> With which I am quite happy. >> >> >> >> You have to enable the unsafeSystem property, disable durable writes on the >> CFs and disable auto-snapshot in the yaml for it to be fast. >> >> kind regards, >> >> Christian >> >> >> >> On Mon, Oct 13, 2014 at 9:50 PM, Kevin Burton <bur...@spinn3r.com> wrote: >> >> Curious to see if any of you have an elegant solution here. >> >> >> >> Right now I”m using cassandra unit; >> >> >> >> https://github.com/jsevellec/cassandra-unit >> >> >> >> for my integration tests. >> >> >> >> The biggest problem is that it doesn’t support shutdown. so I can’t stop or >> cleanup after cassandra between tests. >> >> >> >> I have other Java daemons that have the same problem. For example, ActiveMQ >> doesn’t clean up after itself. >> >> >> >> I was *thinking* of using docker or vagrant to startup a daemon in a >> container, then shut it down between tests. >> >> >> >> But this seems difficult to setup and configure … as well as being not >> amazingly portable. >> >> >> >> Another solution is to use a test suite, and a setUp/tearDown that drops all >> tables created by a test. This way you’re still on the same cassandra >> instance, but the tables are removed for each pass. >> >> >> >> Anyone have an elegant solution to this? >> >> >> >> -- >> >> Founder/CEO Spinn3r.com >> >> Location: San Francisco, CA >> >> blog: http://burtonator.wordpress.com >> >> … or check out my Google+ profile >> >