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

Reply via email to