I think having cql unit tests is certainly a good idea.  It doesn't replace
dtests but makes it easier to have better coverage locally.


On Tue, May 20, 2014 at 7:10 PM, Tyler Hobbs <ty...@datastax.com> wrote:

> Sylvain and I have been having a discussion about testing CQL in unit tests
> vs dtests.  I'd like to hear if there are any other opinions on the topic.
>
> We currently only test CQL queries through dtests.  I'd like to start
> adding unit tests that exercise CQL where it makes sense.  To me, dtests
> make sense when:
> - Multiple nodes are needed
> - Nodes need to be shutdown, replaced, etc
> - We specifically want end-to-end testing
>
> When we don't need those, I'd like to use unit tests because:
> - They're typically quicker to run (especially with an IDE)
> - Unit tests tend to be run earlier and more often than dtests
> - There are fewer moving parts to break (no ccm or dtest machinery)
> - It's easier to use a debugger
>
> But Sylvain makes some good points about keeping all CQL tests in the
> dtests:
> - All of the related tests are in one place
> - Python tends to be more concise and easier to read and write (especially
> for tests)
> - dtests are always fully end-to-end
>
> I agree that Python can be nicer to work with, but Java hasn't been too bad
> in my experience[1].  And we do need end-to-end tests, just not on every
> test case.
>
> Does anybody else have an opinion on starting to use unit tests for some
> CQL testing vs keeping everything in dtests?
>
> [1]
>
> https://github.com/thobbs/cassandra/blob/CASSANDRA-6875-2.0/test/unit/org/apache/cassandra/cql3/MultiColumnRelationTest.java
> --
> Tyler Hobbs
> DataStax <http://datastax.com/>
>



-- 
http://twitter.com/tjake

Reply via email to