You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by Stephen Mallette <sp...@gmail.com> on 2017/03/22 23:40:11 UTC

gremlin.sh Integration Tests

On this PR that had to do with adjustments to gremlin.sh arguments:

https://github.com/apache/tinkerpop/pull/576

Robert Dale suggested I add some tests to bin/validate-distribution.sh to
ensure things worked as expected. We've too often forgone testing
gremlin.sh and it's main class Console, as there hasn't been a reasonably
way to do it identified and I didn't really want to use
validate-distribution.sh for this for a few reasons, but mostly because if
we find a bug at that point, the release manager is going to going to go
full sadpanda because they just did about a half-day's worth of work or so
only to find the release being hosed.

Anyway, after dead ending on Console testing again with junit and mocking
(which isn't ideal either because it ignores gremlin.sh) I recalled that
there might be an approach to directly testing gremlin.sh as an integration
test given what we learned in automating python builds in maven - so long
story short, we now have python based tests in gremlin-console that use
pexpect to pass input and assert output directly in a console started with
whatever flags we like and it all executes seamlessly in our standard build
process.

You can see it in action with: mvn clean install -pl gremlin-console
-DskipIntegrationTests=false

It's not easy to get excited about testing, but I think this is a pretty
neat development for our quality control. It will be interesting to see
what other tests we might want for the console under this model and where
else in TinkerPop this model might be useful.