Taking JUnit Out of the Box

Taking JUnit Out of the Box

Default Out Rerouting

Every agent runs a set of JUnit tests and each test may write information to the default out. Because it is important that the tester or developer gets this information while the test is running, the default out is copied to the main local test suite's console. This process eliminates the need to go and look at each of the agent consoles in the test suite.



Pisces Pluggable Communication Layer

Communication between the agents and the main local test is a complex matter, and Pisces must be able to work in a range of different environments and network topologies. In order to accommodate this issue, Pisces has a pluggable communication layer. Each of these implementations solves the problems that occur in their specific network environments.

Two basic communication layers are provided by Pisces by default--a multicast implementation, which is easy to configure but works only in a LAN environment, and a JMS implementation, which requires the installation of Message-Oriented Middleware (MOM) but works in most environments.

Setting up and Running Pisces Tests

  1. Configuring and Running Pisces Agents

    As I mentioned before, the Pisces test suite is composed of several JUnit tests running on remote agents. Each agent is a Java application that, according to instructions it receives from the main test runner, runs the JUnit test and reports its result and the default out printouts back to the main test runner.

    The easiest way to run an agent application is to configure and run the relevant executable script in the scripts folder provided in the Pisces build. Alternatively, you can also build your own script based on those already provided. The script allows users to configure general parameters for the agent, such as a unique identifier, and for the communication layer, a multicast IP and port.

    For example, a script for running an agent with a multicast communication layer on Linux OS might look like this:

    
    #!/bin/sh
    
    
    
    # the folder were the agent can find junit.jar
    
    export JUNIT_HOME=/opt/junit3.8.1
    
    
    
    # the folders were the agent can find
    
    # the junit tests 
    
    export JUNIT_TEST_CLASSPATH=../examples/
    
    
    
    # the multicast port that the communication
    
    # layer uses 
    
    export PISCES_MCP=6767
    
    
    
    # the multicast IP that the communication
    
    # layer uses 
    
    export PISCES_MCIP=228.4.19.76
    
    
    
    # the unique name of the agent
    
    export AGENT_NAME=remote1
    
    
    
    java -classpath 
    
        "$JUNIT_HOME/junit.jar:../pisces.jar:$JUNIT_TEST_CLASSPATH" \
    
        org.pisces.RemoteTestRunnerAgent \
    
        -name $AGENT_NAME -com multicast \
    
        -mcp $PISCES_MCP  -mcip $PISCES_MCIP
    
    
    
    
    The executable script for a Pisces agent that uses a JMS provider is similar in most ways; the JMS communication layer takes as a parameter the name of a loader class that returns a ConnectionFactory of your JMS provider.
  2. Configuring and Running Pisces-Enabled Test Suites

    After configuring and running all of the relevant agents, we still need to configure and run our Pisces-enabled test suite.

    First, we have to add the communication layer configuration to the beginning of our TestSuite, as shown below:

    
    // create the multicast communication layer
    
    MulticastRemoteTestCommunicationLayer com =
    
        new MulticastRemoteTestCommunicationLayer(
    
           RemoteTestRunner.name ,"228.4.19.76",6767);
    
     
    
    // set the communication layer 
    
    RemoteTestRunner.setCom(com);
    
    
    
    

    Prev  [1] [2] [3] [4] [5] Next

Close    To Top
  • Prev Article-Java:
  • Next Article-Java:
  • Now: Tutorial for Web and Software Design > Java > Java Basic > Java Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction