Continuous Integration with SCA Tests

Introduction

This post builds on the earlier posts in this series which showed an approach to getting started with continuous integration for Oracle SOA and BPM.  In this post, we will look at how to add SCA Tests to our continuous integration environment – executing them as part of the build, and reporting on them in the continuous integration server.

Main Article

Let’s start by building a very simple composite with a test, then we will get that working in our continuous integration environment.  This sample is built using JDeveloper 11.1.1.5 and we will be deploying to Oracle SOA Suite 11.1.1.5.  In this case, all running on Windows 2008 Server R2 and everything is 64-bit.

In JDeveloper, select New from the File menu to create a new application.  Choose Applications under General on the left hand side and then SOA Application from the list of templates, then click on OK.  Enter a name for your application.  I called mine SCATestSample:

slide11

Click on Next and enter a name for your SOA project, I gave mine the same name.  Then click on Finish.

slide21

When the composite opens, drag a BPEL Process out of the palette and drop it on the composite.  I used a BPEL 2.0 process.  Give it a name, I called mine SCATestProcess and click on OK to create it.

slide31

Now, let’s set up our inputs and outputs.  We are going to pass two numbers into the process and have it return the sum of those numbers.  Open up the xsd folder in the project navigator on the left hand side and find the file called SCATestProcess.xsd.  Yours might have a different name if you chose to give your process a different name, but the first part should match the name of your process.

Switch to the source view using the little tab at the bottom left of the main editor pane.

slide41

Here is the code to put in this file:

<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified"
        targetNamespace="http://xmlns.oracle.com/SCATestSample/SCATestSample/SCATestProcess"
        xmlns="http://www.w3.org/2001/XMLSchema">
 <element name="process">
  <complexType>
   <sequence>
    <element name="input1" type="int"/>
    <element name="input2" type="int"/>
   </sequence>
  </complexType>
 </element>
 <element name="processResponse">
  <complexType>
   <sequence>
    <element name="result" type="int"/>
   </sequence>
  </complexType>
 </element>
</schema>

Go back to your composte and open up your process by double clicking on it.  Drag an Assign activity from the palette into your process.  Drop it in the middle, between the receiveInput and the callbackClient.

Double click on your assign to open its settings.  On the right hand side, open up the tree so that you can see the output client:result as shown below and then drag the little calculator icon and drop it on the client:result.  This will let us enter a ‘formula’ to set the value of the output.

slide52

Enter the formula as shown.  You can do this by expanding the inputVariable on the left hand side and then clicking on the Insert Into Expression button, or you can just type it in.  Note that the names may be different if you chose different names for your variables when you created your XSD.

$inputVariable.payload/client:input1 + $inputVariable.payload/client:input2

slide61

Click on OK and OK again.  Then save your project.

Now we are ready to set up the SCA Test.  We will create a simple test that passes in 2 and 2 and checks that the output is 4.

To create the test, we return to the composite, and then go to the Structure pane.  It is usually in the bottom left.  If you cannot see it, you can open it from the View menu.  When you have it, right click on the Test Suites item and choose Create Test Suite… from the popup context menu.  Enter a name for your test suite, I called mine TestSuite1, and for your test, I called mine Test1.

The test will open in the main editor window.  Let’s set up the inputs.  Right click on the ‘exposed service’ in the left hand yellow lane.  Choose Edit Initiate Messages from the popup menu.  Manke sure you have payload selected in the Part and then click on Generate Sample to create a message.  Now just go and edit the data so that both inputs are set to ’2′ as shown below.  Then click on OK.

slide71

Now we will set up a test on the output.  Right click on the wire between the ‘exposed service’ and the process.  Choose Edit Wire Actions from the popup menu.  Make sure you are in the Asserts tab and click on the green plus icon to add a new assertion (i.e. something we want this test to check is true.)

Select the Assert Callback option at the top, then make sure you have processResponse as the Callback Operation.  Click on the Generate Sample button and change the result to ’4′ as shown below.  Then click on OK and OK again, and then save your project.

slide81

Now we have a simple process that will add the two numbers we input and return the result, and a simple test case that will check that it works.

Let’s now get this ready to build this with Hudson.  We are going to take a slightly different approach than the earlier samples.  Instead of using the ‘Maven’ job type, we are going to use ‘freestyle.’  This is so that we can tell Hudson where to pick up the test results for reporting.

First, let’s set up our POM.  As in the earlier examples, create a new file called pom.xml in your project and add the following content to it.  Note that you will have to change this to suit your environment, specfically the SCM information and that path names to things in C:/Oracle/Middleware if you installed in a different location, or you are not using Windows.

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>ScaTestSample</groupId>
  <artifactId>ScaTestSample</artifactId>
  <version>1.0-SNAPSHOT</version>

  <scm>
    <connection>scm:svn:https://administrator@bpm.mark.oracle.com/svn/ScaTestSample/trunk</connection>
    <developerConnection>scm:svn:https://administrator@bpm.mark.oracle.com/svn/ScaTestSample/trunk</developerConnection>
  </scm>

  <dependencies>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.6</version>
        <executions>
          <execution>
            <id>sca-compile</id>
            <phase>compile</phase>
            <configuration>
              <target>
                <property name="scac.input" value="${basedir}/composite.xml" />
                <property name="scac.application.home" value="${basedir}/.." />
                <ant antfile="c:/Oracle/Middleware/Oracle_SOA1/bin/ant-sca-compile.xml"
                     dir="c:/Oracle/Middleware/Oracle_SOA1/bin"
                     target="scac" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
          <execution>
            <id>sca-package</id>
            <phase>package</phase>
            <configuration>
              <target>
                <property name="build.compiler" value="extJavac"/>
                <property name="compositeName" value="${project.artifactId}" />
                <property name="compositeDir" value="${basedir}" />
                <property name="revision" value="${project.version}" />
                <property name="scac.application.home" value="${basedir}/.." />
                <ant antfile="c:/Oracle/Middleware/Oracle_SOA1/bin/ant-sca-package.xml"
                     dir="c:/Oracle/Middleware/Oracle_SOA1/bin"
                     target="package" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
          <execution>
            <id>sca-deploy</id>
            <phase>deploy</phase>
            <configuration>
              <target>
                <property name="serverURL" value="http://bpm.mark.oracle.com:7001" />
                <property name="user" value="weblogic" />
                <property name="password" value="welcome1" />
                <property name="sarLocation" value="${basedir}/deploy/sca_${project.artifactId}_rev${project.version}.jar" />
                <property name="overwrite" value="true" />
                <property name="forceDefault" value="true" />
                <property name="partition" value="default" />
                <ant antfile="c:/Oracle/Middleware/Oracle_SOA1/bin/ant-sca-deploy.xml"
                     dir="c:/Oracle/Middleware/Oracle_SOA1/bin"
                     target="deploy" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
           <execution>
            <id>sca-test</id>
            <phase>deploy</phase>
            <configuration>
              <target>
                <property name="jndi.properties.input" value="c:/Oracle/Middleware/sca-test.jndi.properties" />
                <property name="scatest.input" value="SCATestSample" />
                <property name="scatest.format" value="junit" />
                <property name="scatest.result" value="reports" />
                <ant antfile="c:/Oracle/Middleware/Oracle_SOA1/bin/ant-sca-test.xml"
                     dir="c:/Oracle/Middleware/Oracle_SOA1/bin"
                     target="test" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <distributionManagement>
    <!-- use the following if you're not using a snapshot version. -->
    <repository>
      <id>local</id>
      <name>local repository</name>
      <url>file:///c:/users/administrator/.m2/repository</url>
    </repository>
    <!-- use the following if you ARE using a snapshot version. -->
    <snapshotRepository>
      <id>localSnapshot</id>
      <name>local snapshot repository</name>
      <url>file:///c:/users/administrator/.m2/repository</url>
    </snapshotRepository>
  </distributionManagement>

</project>

This POM has a new execution section added that we did not see in the previous examples.  This new section is to run the test suites.  Here it is:

<execution>
  <id>sca-test</id>
  <phase>deploy</phase>
  <configuration>
    <target>
      <property name="jndi.properties.input" value="c:/Oracle/Middleware/sca-test.jndi.properties" />
      <property name="scatest.input" value="SCATestSample" />
      <property name="scatest.format" value="junit" />
      <property name="scatest.result" value="reports" />
      <ant antfile="c:/Oracle/Middleware/Oracle_SOA1/bin/ant-sca-test.xml"
           dir="c:/Oracle/Middleware/Oracle_SOA1/bin"
           target="test" />
    </target>
  </configuration>
  <goals>
    <goal>run</goal>
  </goals>
</execution>

There are a couple of interesting things to note in this section.  First, the SCA Test task expects to be provided with a jndi.properties file that contains details about how to access the server.  We will create this in a moment.  You can see that we have a property named jndi.properties.input which points to the location of this file.

The scatest.input property has to be the name of the composite that you want to test.  It has to match exactly.  The scatest.format property, which we set to junit, tells SCA Test to provide the details on the test execution in JUnit format.  Hudson has built-in support for reading and interpreting JUnit reports.  Finally, the scatest.result property tells SCA Test where to save the reports.  We have set this to reports.  This is relative to the project root, we will see this later when we configure the job.  SCA Test will create several XML files in this location.

Now we need to check our project into Subversion.  If you have not done so already, create a new Subversion repository for this project, and add a Subversion connection in JDeveloper.  You can do this in the Versioning Navigator by right clicking on the Subversion item and selecting New Repository Connection from the popup menu.  If you don’t see the Versioning Navigator, you can open it from the View menu, its under Team.

slide9

Now we can add our project to version control.  Right click on the project in the project navigator on the left and select Version Project form the popup menu.  Choose the correct repository and location, as shown below, then click on Next.  Enter a comment if you want to and then complete the wizard.

slide10

We will also need to create that jndi.properties file that we discussed earlier.  It needs to be in the location you specified in your POM.  Here is the content, you will need to change this to suit your environment:

java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://bpm.mark.oracle.com:7001/soa-infra
java.naming.security.principal=weblogic
java.naming.security.credentials=welcome1
dedicated.connection=true
dedicated.rmicontext=true

Now we will tell Hudson how to build the project and run the tests.  Log in to Hudson and create a new job.  Give it a name, I called mine ScaTestSample.  Select the option to Build a free-style software project.  Note that this is different to the earlier examples.  Then click on OK.

slide111

In the Source Code Management section, select Subversion and enter the repository URL.

slide12

Check the Poll SCM option and enter a schedule.   I used ‘* * * * *’ (thats five asterisks separated by spaces) which means check every minute.

In the Build section, click on the Add build step button and choose Invoke top-level Maven targets.  Enter clean deploy as your Goals and set the POM to pom.xml.

In the Post-build Actions section, check the option to Publish JUnit test result report and enter the location of reports (in Your report XMLs) as reports/*.xml.  This tells Hudson to look for XML files in the reports directory.  Recall that we configured this in our POM earlier.

slide13

Save your new job.  Run it manually, or wait for the scheduler to run it.  After it completes, you can navigate into the build and click on the Latest Test Results link to view the outcome of the tests.  You should find your test suite and all of your tests listed here, along with the results.  There will only be one in our case, as we only defined one, but of course in a real project, you would probably define several test suites with many tests in each.

slide14

If you run the build a few more times, you will see that a Test Result Trend graph is automatically added to the job’s main page.

slide15

For completeness, here is the output from my job.  You can see the compile, package, deploy and test phases in here.

Started by an SCM change
Updating https://bpm.mark.oracle.com/svn/ScaTestSample/trunk revision: Jun 24, 2011 3:42:21 PM depth:infinity ignoreExternals: false
U         pom.xml
At revision 6
[workspace] $ mvn.bat -f pom.xml clean deploy
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - ScaTestSample:ScaTestSample:jar:1.0-SNAPSHOT
[INFO]    task-segment: [clean, deploy]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory C:\hudson\jobs\ScaTestSample\workspace\target
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\hudson\jobs\ScaTestSample\workspace\src\main\resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [antrun:run {execution: sca-compile}]
[INFO] Executing tasks

main:

scac:
Validating composite "C:\hudson\jobs\ScaTestSample\workspace/composite.xml"
     [scac] BPEL 2.0 validation of "SCATestProcess" took 153.9 milliseconds
     [scac] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
     [scac] >> modified xmlbean locale class in use
     [scac] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[INFO] Executed tasks
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\hudson\jobs\ScaTestSample\workspace\src\test\resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] No tests to run.
[INFO] [jar:jar {execution: default-jar}]
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: C:\hudson\jobs\ScaTestSample\workspace\target\ScaTestSample-1.0-SNAPSHOT.jar
[INFO] [antrun:run {execution: sca-package}]
[INFO] Executing tasks

main:
     [echo] oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/..
    [input] skipping input as property compositeDir has already been set.
    [input] skipping input as property compositeName has already been set.
    [input] skipping input as property revision has already been set.

clean:
     [echo] deleting C:\hudson\jobs\ScaTestSample\workspace/deploy/sca_ScaTestSample_rev1.0-SNAPSHOT.jar
   [delete] Deleting: C:\hudson\jobs\ScaTestSample\workspace\deploy\sca_ScaTestSample_rev1.0-SNAPSHOT.jar

init:

scac-validate:
     [echo] Running scac-validate in C:\hudson\jobs\ScaTestSample\workspace/composite.xml
     [echo] oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/..
    [input] skipping input as property compositeDir has already been set.
    [input] skipping input as property compositeName has already been set.
    [input] skipping input as property revision has already been set.

scac:
Validating composite "C:\hudson\jobs\ScaTestSample\workspace/composite.xml"
     [scac] BPEL 2.0 validation of "SCATestProcess" took 154.4 milliseconds
     [scac] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
     [scac] >> modified xmlbean locale class in use
     [scac] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

package:
     [echo] oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/..
    [input] skipping input as property compositeDir has already been set.
    [input] skipping input as property compositeName has already been set.
    [input] skipping input as property revision has already been set.

compile-source:
    [mkdir] Created dir: C:\hudson\jobs\ScaTestSample\workspace\dist
     [copy] Copying 29 files to C:\hudson\jobs\ScaTestSample\workspace\dist
     [copy] Warning: C:\hudson\jobs\ScaTestSample\.adf does not exist.
     [copy] Warning: C:\hudson\jobs\ScaTestSample\src does not exist.
     [copy] Warning: C:\hudson\jobs\ScaTestSample\workspace\src does not exist.
      [jar] Building jar: C:\hudson\jobs\ScaTestSample\workspace\deploy\sca_ScaTestSample_rev1.0-SNAPSHOT.jar
   [delete] Deleting directory C:\hudson\jobs\ScaTestSample\workspace\dist
[INFO] Executed tasks
[INFO] [install:install {execution: default-install}]
[INFO] Installing C:\hudson\jobs\ScaTestSample\workspace\target\ScaTestSample-1.0-SNAPSHOT.jar to C:\.m2\repository\ScaTestSample\ScaTestSample\1.0-SNAPSHOT\ScaTestSample-1.0-SNAPSHOT.jar
[INFO] [deploy:deploy {execution: default-deploy}]
[INFO] Retrieving previous build number from localSnapshot
Uploading: file:///c:/users/administrator/.m2/repository/ScaTestSample/ScaTestSample/1.0-SNAPSHOT/ScaTestSample-1.0-20110624.054233-2.jar
2/2K
2K uploaded  (ScaTestSample-1.0-20110624.054233-2.jar)
[INFO] Uploading project information for ScaTestSample 1.0-20110624.054233-2
[INFO] Retrieving previous metadata from localSnapshot
[INFO] Uploading repository metadata for: 'snapshot ScaTestSample:ScaTestSample:1.0-SNAPSHOT'
[INFO] Retrieving previous metadata from localSnapshot
[INFO] Uploading repository metadata for: 'artifact ScaTestSample:ScaTestSample'
[INFO] [antrun:run {execution: sca-deploy}]
[INFO] Executing tasks

main:
     [echo] oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/..

deploy:
    [input] skipping input as property serverURL has already been set.
    [input] skipping input as property sarLocation has already been set.
setting user/password..., user=weblogic
Processing sar=C:\hudson\jobs\ScaTestSample\workspace/deploy/sca_ScaTestSample_rev1.0-SNAPSHOT.jar
Adding sar file - C:\hudson\jobs\ScaTestSample\workspace\deploy\sca_ScaTestSample_rev1.0-SNAPSHOT.jar
INFO: Creating HTTP connection to host:bpm.mark.oracle.com, port:7001
INFO: Received HTTP response from the server, response code=200
---->Deploying composite success.
[INFO] Executed tasks
[INFO] [antrun:run {execution: sca-test}]
[INFO] Executing tasks

main:
     [echo] Running scatest using oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/..

test:
     [echo] Classpth = c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\fabric-ext.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\oracle-soa-client-api.jar;c:\Oracle\Middleware\oracle_common\soa\modules\oracle.soa.mgmt_11.1.1\soa-infra-mgmt.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.bpel_11.1.1\orabpel-common.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.bpel_11.1.1\orabpel.jar;c:\Oracle\Middleware\wlserver_10.3\server\lib\weblogic.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-api.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-common.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-internal.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jrf_11.1.1\jrf-api.jar;c:\Oracle\Middleware\oracle_common\soa\modules\oracle.soa.mgmt_11.1.1\soa-client-stubs-was.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.ejb.thinclient_7.0.0.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.orb_7.0.0.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\plugins\com.ibm.ws.runtime.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.admin.client_7.0.0.jar
     [echo] Running scatest using oracle.home = c:\Oracle\Middleware\Oracle_SOA1\bin/.. SCATestSample
     [echo] Using context = build.properties
     [echo] Using path = c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\fabric-ext.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\fabric-runtime.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.fabric_11.1.1\oracle-soa-client-api.jar;c:\Oracle\Middleware\oracle_common\soa\modules\oracle.soa.mgmt_11.1.1\soa-infra-mgmt.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.bpel_11.1.1\orabpel-common.jar;c:\Oracle\Middleware\Oracle_SOA1\soa\modules\oracle.soa.bpel_11.1.1\orabpel.jar;c:\Oracle\Middleware\wlserver_10.3\server\lib\weblogic.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-api.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-common.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1\jps-internal.jar;c:\Oracle\Middleware\oracle_common\modules\oracle.jrf_11.1.1\jrf-api.jar;c:\Oracle\Middleware\oracle_common\soa\modules\oracle.soa.mgmt_11.1.1\soa-client-stubs-was.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.ejb.thinclient_7.0.0.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.orb_7.0.0.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\plugins\com.ibm.ws.runtime.jar;c:\Oracle\Middleware\Oracle_SOA1\bin\${was.home}\runtimes\com.ibm.ws.admin.client_7.0.0.jar
    [input] skipping input as property scatest.input has already been set.
    [input] skipping input as property jndi.properties.input has already been set.
  [scatest] Junit formatting
  [scatest] <testsuite name="sca.default-SCATestSample.TestSuite1" tests="1" errors="0" failures="0" time="0.241"><properties><property name="db.type" value="oracle"/><property name="bpel.host.name" value="bpm"/><property name="soa.oracle.home" value="C:\Oracle\Middleware\Oracle_SOA1"/><property name="suite.start.date" value="2011-06-24T15:42:37.990+10:00"/><property name="suite.end.date" value="2011-06-24T15:42:38.231+10:00"/><property name="run.start.date" value="2011-06-24T15:42:37.990+10:00"/><property name="run.end.date" value="2011-06-24T15:42:38.231+10:00"/></properties><testcase name="Test1" classname="sca.default-SCATestSample.TestSuite1.Test1" time="0.241"/></testsuite>
  [scatest] C:\hudson\jobs\ScaTestSample\workspace\reports\BPEL-sca.default-SCATestSample.TestSuite1.xml
  [scatest] <testsuite name="sca.default-SCATestSample.codeCoverages" errors="0" failures="0" tests="0" time="0.0"/>
  [scatest] C:\hudson\jobs\ScaTestSample\workspace\reports\BPEL-sca.default-SCATestSample.codeCoverages.xml
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22 seconds
[INFO] Finished at: Fri Jun 24 15:42:45 EST 2011
[INFO] Final Memory: 23M/439M
[INFO] ------------------------------------------------------------------------
Recording test results
Finished: SUCCESS

You might also want to take a look in Enterprise Manager at the instances for this composite.  You should see one or more test instances (marked with a little yellow dot) depending on how many times you ran the job.  You can drill down into these, as normal, and see the data.

One other point for consideration is the placement of the deploy and test in the Maven ‘deploy’ goal.  We consider that the ‘integration-test’ goal is possibly a more philosophically correct place to put these actions.  However, we are sticking to the ‘deploy’ goal as it seems to make more sense to us to deploy the project to the runtime in the ‘deploy’ phase – just because they have the same name, and it is possibly less confusing.  We may revisit this choice later.

Add Your Comment