Parallel Execution of Unit Tests

Discussion in 'Ruby' started by wade, Mar 17, 2008.

  1. wade

    wade Guest

    Hi,

    I'm using Ruby's Test::Unit framework to drive some functional tests
    which use Selenium to perform E2E scenarios against a web app in a
    real browser. As one can easily imagine, running a large suite of
    browser-based tests in serial can take ages, so I'm looking for a
    practical way to parallelize these tests and run a bunch of them at a
    time until they are all done.

    I've looked briefly at DeepTest for Ruby, which won't cut it, as far
    as I'm concerned. What I would really like come across is a solution
    along the lines of the parallel execution support provided by the
    TestNG framework for Java unit tests.

    Any suggestions, direction, or comments regarding my approach would be
    appreciated.

    Thanks!
     
    wade, Mar 17, 2008
    #1
    1. Advertising

  2. wade

    Phlip Guest

    wade wrote:

    > I'm using Ruby's Test::Unit framework to drive some functional tests
    > which use Selenium to perform E2E scenarios against a web app in a
    > real browser. As one can easily imagine, running a large suite of
    > browser-based tests in serial can take ages


    How many of these tests could run against the source code directly, as real unit
    tests?

    --
    Phlip
    http://assert2.rubyforge.org/
     
    Phlip, Mar 17, 2008
    #2
    1. Advertising

  3. wade

    wade Guest

    On Mar 17, 2:13 pm, Phlip <> wrote:
    > wade wrote:
    > > I'm using Ruby's Test::Unit framework to drive some functional tests
    > > which use Selenium to perform E2E scenarios against a web app in a
    > > real browser. As one can easily imagine, running a large suite of
    > > browser-based tests in serial can take ages

    >
    > How many of these tests could run against the source code directly, as real unit
    > tests?
    >
    > --
    > Phlip
    > http://assert2.rubyforge.org/


    Really none of them, unfortunately. This specific domain of tests are
    designed to be a sort of automated acceptance test to be carried out
    following a deployment of the app, from an end-user perspective. Thus
    the need to simulate "real world" interactions, starting from a
    browser and essentially excersizing each layer of the stack in an end
    to end manner..
     
    wade, Mar 17, 2008
    #3
  4. wade

    Phlip Guest

    wade wrote:

    > Really none of them, unfortunately. This specific domain of tests are
    > designed to be a sort of automated acceptance test to be carried out
    > following a deployment of the app, from an end-user perspective. Thus
    > the need to simulate "real world" interactions, starting from a
    > browser and essentially excersizing each layer of the stack in an end
    > to end manner..


    If I were a developer, adding features to this code base, how could I run a
    short batch of unit tests to check my feature itself? Wouldn't they bypass the
    soak tests and go to the actual code?

    Soak tests are great, but if you need to run them too often, you don't need to
    speed them up, you need more, faster tests, running closer to the tested code.

    --
    Phlip
     
    Phlip, Mar 17, 2008
    #4
  5. wade

    Mark Ryall Guest

    [Note: parts of this message were removed to make it a legal post.]

    have you tried selenium grid?

    On Tue, Mar 18, 2008 at 8:40 AM, wade <> wrote:

    > On Mar 17, 2:13 pm, Phlip <> wrote:
    > > wade wrote:
    > > > I'm using Ruby's Test::Unit framework to drive some functional tests
    > > > which use Selenium to perform E2E scenarios against a web app in a
    > > > real browser. As one can easily imagine, running a large suite of
    > > > browser-based tests in serial can take ages

    > >
    > > How many of these tests could run against the source code directly, as

    > real unit
    > > tests?
    > >
    > > --
    > > Phlip
    > > http://assert2.rubyforge.org/

    >
    > Really none of them, unfortunately. This specific domain of tests are
    > designed to be a sort of automated acceptance test to be carried out
    > following a deployment of the app, from an end-user perspective. Thus
    > the need to simulate "real world" interactions, starting from a
    > browser and essentially excersizing each layer of the stack in an end
    > to end manner..
    >
    >
     
    Mark Ryall, Mar 18, 2008
    #5
  6. wade

    wade Guest

    Yeah, I'm actually utilizing Selenium Grid for the client side of it.
    I have a Grid farm all set up and configured, and several teams run
    nightly Selenium test suites against it without issues. The problem
    is that Grid doesn't provide for a means of actually driving tests in
    parallel -- it only serves as a matrix of Remote Controls (browsers)
    for your tests to run against. The advantage of this to me right now
    is that several test suites can be running simultaneously, and the
    Grid Hub will take care of allocating each test to an available
    environment. However, the suites themselves are still running
    serially, one test after another.

    What I need is a way for a complete test suite to be executed in a
    multi-threaded fashion, I guess.


    wade

    On Mar 18, 2:39 am, "Mark Ryall" <> wrote:
    > have you tried selenium grid?
    >
    > On Tue, Mar 18, 2008 at 8:40 AM, wade <> wrote:
    > > On Mar 17, 2:13 pm, Phlip <> wrote:
    > > > wade wrote:
    > > > > I'm using Ruby's Test::Unit framework to drive some functional tests
    > > > > which use Selenium to perform E2E scenarios against a web app in a
    > > > > real browser. As one can easily imagine, running a large suite of
    > > > > browser-based tests in serial can take ages

    >
    > > > How many of these tests could run against the source code directly, as

    > > real unit
    > > > tests?

    >
    > > > --
    > > > Phlip
    > > > http://assert2.rubyforge.org/

    >
    > > Really none of them, unfortunately. This specific domain of tests are
    > > designed to be a sort of automated acceptance test to be carried out
    > > following a deployment of the app, from an end-user perspective. Thus
    > > the need to simulate "real world" interactions, starting from a
    > > browser and essentially excersizing each layer of the stack in an end
    > > to end manner..
     
    wade, Mar 18, 2008
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    8
    Views:
    892
  2. dayo
    Replies:
    11
    Views:
    347
    Ilya Zakharevich
    Dec 16, 2005
  3. aminer
    Replies:
    0
    Views:
    351
    aminer
    Aug 11, 2012
  4. Roy Smith

    Debugging parallel nose tests?

    Roy Smith, May 23, 2013, in forum: Python
    Replies:
    3
    Views:
    96
    Roy Smith
    May 25, 2013
  5. Roy Smith

    Re: Debugging parallel nose tests?

    Roy Smith, May 24, 2013, in forum: Python
    Replies:
    0
    Views:
    103
    Roy Smith
    May 24, 2013
Loading...

Share This Page