On 11/27/2012 10:17 AM, R. Tyler Croy wrote:
There's also a conversation of adding another functionality (either
in this plugin or another one) that exposes Groovy scripting console
in a way that lets you verify side-effects that happen on the server
more easily.
I'm not sure if you're alluding to hooking groovy-based validation into the
selenium-tests but I would caution against it. There be dragons! Such
functionality would start effectively breaking down the testing pyramid (unit,
integration, UI tests), and becomes a huge pain in the ass over time.
Yes, I was alluding to it.
Today, the way we make sure certain things actually happened is to look
for a specific log message in the console output. That makes me nervous.
So the ability to verify that certain things have happened in the server
by letting the test client execute some groovy script and get the result
back, I think it's an useful building block.
Yes, the feature can be abused, I agree.
Integration testing to verify side effects of things internal to Jenkins, I'm
all for though :)
And then maybe it's possible to run selenium-tests in JRuby so that
we can run some Java-based selenium tests in the same environment,
which allows you to leverage pluggable layers in the selenium-tests
and VirtualBox integrations.
Ick, I'm not going to tell anybody that's volunteering to write tests how to do
it, but mixing different platforms is going to be a lot of work, even with
JRuby, it's no silver bullet.
The thing for me is that different JenkinsController implementations
took a lot of work to implement, and so I hate to do it all over again
in Java.
The interaction between the controller and the actual test is actually
pretty small, so I thought it's feasible (I was mainly worried whether
all the gems that we use, like vagrant, would actually run on JRuby or
not.) But OK, the onus of proof is on me.
I can think of other cheap&crappy integration, like our
JenkinsController functionality in Ruby exposed over HTTP, then a
separate JUnit process making start/stop requests over HTTP and then
execute tests in Java.
Just my few cents :)
Cheers
- R. Tyler Croy
--------------------------------------
Code: https://github.com/rtyler
Chatter: https://twitter.com/agentdero
--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Nectar, our professional version of Jenkins