]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.agent/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java
Improve error management:
[gpl/argeo-slc.git] / org.argeo.slc.agent / src / main / java / org / argeo / slc / ant / test / SlcTestTask.java
index ece9d350617a80bf449e2fc8c4785143323221e4..66444f17e755f8c692eec8e4b4b7392433196826 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.slc.ant.test;
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
 import org.apache.tools.ant.BuildException;\r
-import org.argeo.slc.ant.SlcAntConfig;\r
+import org.argeo.slc.ant.AntConstants;\r
 import org.argeo.slc.ant.spring.SpringArg;\r
 import org.argeo.slc.ant.structure.SAwareTask;\r
 import org.argeo.slc.core.deploy.DeployedSystem;\r
@@ -11,11 +11,14 @@ import org.argeo.slc.core.process.SlcExecution;
 import org.argeo.slc.core.structure.StructureAware;\r
 import org.argeo.slc.core.structure.tree.TreeSPath;\r
 import org.argeo.slc.core.test.ExecutableTestRun;\r
+import org.argeo.slc.core.test.SimpleResultPart;\r
 import org.argeo.slc.core.test.SimpleTestResult;\r
 import org.argeo.slc.core.test.SimpleTestRun;\r
 import org.argeo.slc.core.test.TestData;\r
 import org.argeo.slc.core.test.TestDefinition;\r
 import org.argeo.slc.core.test.TestResult;\r
+import org.argeo.slc.core.test.TestResultPart;\r
+import org.argeo.slc.core.test.TestStatus;\r
 import org.argeo.slc.core.test.WritableTestRun;\r
 import org.argeo.slc.spring.SpringUtils;\r
 import org.springframework.beans.BeansException;\r
@@ -38,8 +41,8 @@ public class SlcTestTask extends SAwareTask {
                if (testRunBean != null) {\r
                        testRunBeanT = testRunBean;\r
                } else {\r
-                       testRunBeanT = getProject().getUserProperty(\r
-                                       SlcAntConfig.DEFAULT_TEST_RUN_PROPERTY);\r
+                       testRunBeanT = getProject().getProperty(\r
+                                       AntConstants.DEFAULT_TEST_RUN_PROPERTY);\r
                }\r
                WritableTestRun testRun = null;\r
 \r
@@ -47,7 +50,8 @@ public class SlcTestTask extends SAwareTask {
                        try {\r
                                testRun = (WritableTestRun) getContext().getBean(testRunBeanT);\r
                                if (log.isTraceEnabled())\r
-                                       log.trace("Load test run bean from bean name " + testRunBeanT);\r
+                                       log.trace("Load test run bean from bean name "\r
+                                                       + testRunBeanT);\r
                        } catch (BeansException e) {\r
                                // silent, will try defaults\r
                        }\r
@@ -57,7 +61,7 @@ public class SlcTestTask extends SAwareTask {
                        testRun = loadSingleFromContext(WritableTestRun.class);\r
                        if (testRun == null) {\r
                                testRun = new SimpleTestRun();\r
-                               log.warn("Created default simple test run");\r
+                               log.trace("Created default simple test run");\r
                        } else {\r
                                if (log.isTraceEnabled())\r
                                        log.trace("Load test run from scanning Spring context");\r
@@ -66,22 +70,22 @@ public class SlcTestTask extends SAwareTask {
 \r
                // set overridden references\r
                if (testDataArg != null) {\r
-                       testRun.setTestData(testDataArg.getBeanInstance());\r
+                       testRun.setTestData(testDataArg.getInstance());\r
                        log.trace("Overrides test data");\r
                }\r
 \r
                if (testDefinitionArg != null) {\r
-                       testRun.setTestDefinition(testDefinitionArg.getBeanInstance());\r
+                       testRun.setTestDefinition(testDefinitionArg.getInstance());\r
                        log.trace("Overrides test definition");\r
                }\r
 \r
                if (deployedSystemArg != null) {\r
-                       testRun.setDeployedSystem(deployedSystemArg.getBeanInstance());\r
+                       testRun.setDeployedSystem(deployedSystemArg.getInstance());\r
                        log.trace("Overrides deployed system");\r
                }\r
 \r
                if (testResultArg != null) {\r
-                       testRun.setTestResult(testResultArg.getBeanInstance());\r
+                       testRun.setTestResult(testResultArg.getInstance());\r
                        log.trace("Overrides test result");\r
                }\r
 \r
@@ -107,7 +111,17 @@ public class SlcTestTask extends SAwareTask {
                                        getRegistry(), getTreeSPath());\r
                }\r
 \r
-               ((ExecutableTestRun) testRun).execute();\r
+               try {\r
+                       ((ExecutableTestRun) testRun).execute();\r
+               } catch (RuntimeException e) {\r
+                       if (result != null) {\r
+                               SimpleResultPart errorPart = new SimpleResultPart(\r
+                                               TestStatus.ERROR,\r
+                                               "Unexpected exception when running test", e);\r
+                               result.addResultPart(errorPart);\r
+                       }\r
+                       throw e;\r
+               }\r
        }\r
 \r
        /**\r