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
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
\r
/** Ant task wrapping a test run. */\r
public class SlcTestTask extends SAwareTask {\r
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
if (testRunBeanT != null) {\r
- testRun = (WritableTestRun) getContext().getBean(testRunBeanT);\r
- if (log.isTraceEnabled())\r
- log.trace("Load test run bean from bean name " + testRunBeanT);\r
+ try {\r
+ testRun = (WritableTestRun) getContext().getBean(testRunBeanT);\r
+ if (log.isTraceEnabled())\r
+ log.trace("Load test run bean from bean name "\r
+ + testRunBeanT);\r
+ } catch (BeansException e) {\r
+ // silent, will try defaults\r
+ }\r
}\r
\r
if (testRun == null) {\r
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
\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
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